app/assets/javascripts | ||
lib | ||
.gitignore | ||
bullseye.gemspec | ||
Gemfile | ||
LICENSE | ||
Rakefile | ||
README.md |
Bullseye!
An extremely quickly written shoot-from-the-hip implementation of so-called Garber-Irish DOM-ready execution for the Rails asset pipeline. Could work with other Sprockets stuff down the road, too. But for now, it's pretty married to Rails. Also, needs tests for the exactly four things that it does. Anyone wanna add exactly four Cucumber features?
Why?
I got sick of on-page JavaScript. Also I like using the Asset Pipeline for what it's actually intended for, reducing the number of HTTP requests.
How?
Add the gem:
gem 'bullseye'
Replace your body
tag in your layout with:
!!!
%html
= bullseye_body do
= yield
That adds data-action
and data-controller
attributes to your body
tag automagically. The controller
comes from ActionController::Base.controller_path
, so it's the full namespaced underscored path (Admin::UsersController
becomes admin/users
).
Then, in application.js
:
//= require bullseye
Finally, create some controller/actions-specific files within app/assets/javascripts/bullseye
and give them the extenstion .bullseye
. For instance, target SitesController#show
in JS and CoffeeScript:
// app/assets/javascripts/bullseye/sites/show.bullseye
alert("I am showing a site");
# app/assets/javascripts/bullseye/sites/show.bullseye.coffee
alert "I am also showing a site"
Piece of cake.