Search code examples
cssrubyrubygemssasscompass-sass

Require specific gem version in SASS & Compass


I know this is probably more a Ruby question but I work on several projects where I've used compass plugins. Later on I upgrade these plugins and start new projects. The issue arises when I need to go back and make amends to an older project.

How can I amend my config.rb file to use a specific version of a gem?

For example I often use the Compass plugin: http://rubygems.org/gems/html5-boilerplate/versions

The line in my config.rb file looks like this:

require 'html5-boilerplate'

But I would need 1.0.0 for one project and 2.1.0 in another.


Solution

  • Suggest using rvm (the Ruby enVironment Manager), bundler and gemsets. rvm for managing ruby versions and for allowing you to use gemsets - bundler to specify the versions of the gems you want to use in the project. After you install the bundler gem and have a Gemfile that uses the syntax you have already discovered

    gem "html5-boilerplate", "~> 2.1.0"
    

    bundle install will then bring down the gems you need for your project. Read more at http://gembundler.com

    gemsets can also be project specific and different gemsets can have the same gems at different versions. you can specify the gemset associated with a project via a .rvmrc file in the project's root.

    There are several nice posts out there on how to set up rvm and gemsets. Here's a good example of one to get you going:

    http://adamstacoviak.com/posts/super-easy-ruby-gem-management-with-rvm-gemsets/

    And here's one that also covers bundler:

    http://lindsaar.net/2010/3/31/bundle_me_some_sanity