Installing gems with rake

is that possible.
google says nothing about it.

ciao robertj

Robert K. wrote:

is that possible.
google says nothing about it.

ciao robertj

Robert- I’m handling it with a new task and a yml config.

sudo rake gems:install

######## gems.rake ########

namespace :gems do
require ‘rubygems’

task :install do
# defaults to --no-rdoc --no-ri, set docs=(anything) to build docs
docs = (ENV[‘docs’].nil? ? ‘–no-rdoc --no-ri’ : ‘’)
#grab the list of gems/version to check
gems = YAML.load_file ‘config/gems.yml’

gems.each do |gem|
  # load the gem spec
  gem_spec = YAML.load(`gem spec #{gem[:name]}`)
  gem_loaded = false
  gem_loaded = require_gem gem[:name], gem[:version] rescue nil

  # if forced
  # or there is no gem_spec
  # or the spec version doesn't match the required version
  # or require_gem returns false
  #    (return false also happens if the gem has already been 

loaded)
if ! ENV[‘force’].nil? or
! gem_spec or
(gem_spec.version.version != gem[:version] and ! gem_loaded)

    ret = system "gem install #{gem[:name]} -v #{gem[:version]} -y 

#{docs}"
# something bad happened, pass on the message
p $? unless ret
else
puts “#{gem[:name]} #{gem[:version]} already installed”
end
end
end
end

######## gems.yml ########

- :name: rails
  :version: "1.1.6"

- :name: fastercsv
  :version: "0.2.1"

- :name: memcache-client
  :version: "1.0.3"

- :name: mongrel
  :version: "0.3.13.3"

- :name: mongrel_cluster
  :version: "0.2.0"

- :name: uuidtools
  :version: "1.0.0"

- :name: ferret
  :version: "0.9.5"