Powered config.gem syntax to make your enviroment DRY
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
LICENSE
README.rdoc
Rakefile
vitamined-gems.gemspec

README.rdoc

Vitamined gems

Powered config.gem syntax to make your enviroment DRY

Until the gem bundler dominates the entire world you can ease the pain of defining gem dependencies by vitamining your environment file, avoiding, for example, the burden of adding :lib and :source parameters when requiring github gems.

config.gem.github 'yfactorial-utility_scopes'

Many thanks to Bruce Williams for the original idea that inspirated this code. Thanks as well to Marcos Arias for his comments.

This gem has been tested with Rails 2.2.x and Rails 2.3.x versions

Installation

Just install the gem from Gemcutter

$ gem install vitamined-gems --source http://gemcutter.org

Usage

In your environment.rb file, load and initialize the gem before the Rails::Initializer.run line.

require 'vitamined-gems'
vitamine_gems!

After that you can use the extended syntax. By default github and gemcutter gems are supported. Github gems automatically set the :lib and :source parameters, while Gemcutter gems set the :source. You can override those values by providing your own. The following config:

config.gem.cutter 'sugarfree-config', :version => '1.0.0'
config.gem.github 'yfactorial-utility_scopes', :version => '2.0.1'

is equivalent to:

config.gem.gemcutter 'sugarfree-config', :version => '1.0.0', :source => 'http://gemcutter.org'
config.gem.github 'yfactorial-utility_scopes', :version => '2.0.1', :lib => 'utility_scopes', :source => 'http://gems.github.org'

Further customization

You can add more vitamins or override the exsisting ones by passing a block to the vitamine_gems! method like this

vitamine_gems! do 
  github do |name, options| 
    { :lib => name.split('-', 2).last, :source => 'http://gems.github.org' }
  end

  cutter :source => 'http://gemcutter.org'
end

or you can put a vitamin.rb file in the RAILS_ROOT/config folder

github do |name, options| 
  { :lib => name.split('-', 2).last, :source => 'http://gems.github.org' } 
end

cutter :source => 'http://gemcutter.org'

You can use both methods of customization in parallel. Just remember that in case of name clashing the block based config overrides the file based config.

Contact

Please mail bugs, suggestions and patches to contact@davidbarral.com