My favorites | Sign in
Project Home
Project Information
Members
Featured
Wiki pages
Links

NOTE: I know longer have any intention of maintaining this project. Unfortunately, I just don't do anymore Ruby on Rails front-end work. If you have sufficient interest and would like to take this project over, please contact me. Thank you.

Tim Harper


WHY BUNDLE-FU IS SPECIAL


Web 2.0 sites have lots of tiny javascript/css files, which causes one extra round trip per file to the server and back! This is bad! Bundle-fu throws it all up into a big package and sends it out all at once.

Bundle-fu can speed your load time up around 50%.

It:

  • Does not require a separate config file
  • Automatically regenerates the bundle if you modify an included file, or change the include order.
  • Is easily bypassed by passing "?bundle_fu=false" into your page (including assets separately vs bundled). It does not affect other users of your site, and stays bypassed for the your session only. Bundle-fu makes debugging fun!
  • Is optimized for production mode (only generates the bundle file once when the server is first started).
  • Puts the bundles in javascripts/cache and stylesheets/cache, so it's easy to ignore with subversion.
  • Rewrites relative URLs in your CSS files, so you'll never have broken images.
  • Minimizes your javascripts by default using the Ruby Version of JSMin. Optionally, if you install PackR, it will automatically use that instead.
  • No additional requests on your rails application - bundled files are served as static files.
  • Supports multiple combinations of JS/CSS, using the :name parameter

USAGE / INSTALLATION


Step 1

Install this plugin

git clone git://github.com/timcharper/bundle-fu.git vendor/plugins/bundle-fu && rm -rf vendor/plugins/bundle-fu/.git

Step 2

Put the following around your stylesheets/javascripts (note it works with any method of including assets!):

  <% bundle do %>
    ...
    <%= javascript_include_tag "prototype" %>
    <%= stylesheet_link_tag "basic.css" %>
    <%= calendar_date_select_includes "red" %>
    <script src="javascripts/application.js" type="text/javascript"></script>
    ...
  <% end %>

That's it!


HELP



OTHER RUBY ON RAILS ASSET BUNDLERS


Bundle-fu isn't the only Ruby on Rails plug-in that will bundle assets. It simply has a new approach to doing so.

Other asset bundling solutions:

  • AssetPackager - Requires a separate config file to work. Option to compress javascript.
  • Rails 2.0 - Very clean implementation. Doesn't rewrite relative CSS urls. Bundles only in production mode. Doesn't bundle includes from asset include helpers from 3rd party plug-ins. No bypass mechanism (though it could be implemented easily). No js minification.

Author:

Tim C. Harper - irb(main):001:0> ( 'tim_see_harperATgmail._see_om'.gsub('_see_', 'c').gsub('AT', '@') )
Powered by Google Project Hosting