Implement DOM-ready execution in Rails using the Asset Pipeline.
Go to file
John Bintz 5cb3e997aa initial commit, yeehaw 2012-08-23 08:43:06 -04:00
app/assets/javascripts initial commit, yeehaw 2012-08-23 08:43:06 -04:00
lib initial commit, yeehaw 2012-08-23 08:43:06 -04:00
.gitignore initial commit, yeehaw 2012-08-23 08:43:06 -04:00
Gemfile initial commit, yeehaw 2012-08-23 08:43:06 -04:00
LICENSE initial commit, yeehaw 2012-08-23 08:43:06 -04:00
README.md initial commit, yeehaw 2012-08-23 08:43:06 -04:00
Rakefile initial commit, yeehaw 2012-08-23 08:43:06 -04:00
bullseye.gemspec initial commit, yeehaw 2012-08-23 08:43:06 -04:00

README.md

Bullseye!

An extremely fast 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.