Close
Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

LABS
[ANN] GemInstaller 0.5.3 Released

This fixes several bugs that people have complained about for quite a while. Please let me know if anything is broken.


GemInstaller 0.5.3 has been released!

GemInstaller

CHANGES

  • 0.5.3 / 2009-08-25
  • Many long overdue bugfixes and patches, see
    http://tinyurl.com/geminstaller-0-5-3-release for details.
  • Thanks to Greg Fitzgerald, Britt Crawford, John Trupiano, Gabriel
    Gironda, and Eric Hodel for patches and assistance.
  • Issues with case statement under Ruby 1.9
  • GemInstaller cannot distinguish between gems that have the ame name
    but capitalized differently.
  • add ./ci as default location for config file
  • Disable GemInstaller install in default rails preinitializer.rb, but
    fork if it is used
  • autogem() fails when run for newly-installed gem
  • Sometimes installing fails due to RubyGems cache not being cleared
    between multiple API calls

DESCRIPTION

Automated Gem installation, activation, and much more!

FEATURES

GemInstaller provides automated installation, loading and activation
of RubyGems. It uses a simple YAML config file to:

  • Automatically install the correct versions of all required gems
    wherever your app runs.
  • Automatically ensure installed gems and versions are consistent
    across multiple applications, machines, platforms, and environments
  • Automatically activate correct versions of gems on the ruby load
    path when your app runs (’require_gem’/’gem’)
  • Automatically reinstall missing dependency gems (built in to RubyGems > 1.0)
  • Automatically detect correct platform to install for multi-platform
    gems (built in to RubyGems > 1.0)
  • Print YAML for “rogue gems” which are not specified in the current
    config, to easily bootstrap your config file, or find gems that were
    manually installed without GemInstaller.
  • Allow for common configs to be reused across projects or
    environments by supporting multiple config files, including common
    config file snippets, and defaults with overrides.
  • Allow for dynamic selection of gems, versions, and platforms to be
    used based on environment vars or any other logic.
  • Avoid the “works on demo, breaks on production” syndrome
  • Find lost socks.

Quick Start

See http://geminstaller.rubyforge.org/documentation/index.html

INSTALL

  • [sudo] gem install geminstaller

Comments
  1. Hi! I’m working on setting this up for an application and I am running into an issue with activating gems from github that may have a different lib than the name of the gem (ie mislav-will_paginate). I’ve been digging through the documentation and source code trying to figure out how to specify them correctly and have fun into a dead-end. Any guidance about where I can look would be greatly appreciated. Thanks!

  2. This is a huge help! Thank you!

  3. Chad, I looked through the documentation, but I couldn’t find any guidance on what to do for “development” dependencies. E.g. “rspec”, “shoulda”, “cucumber”, or “factory_girl”, etc. These are the gems that don’t need to be installed to run the app or run the production-use rake tasks (e.g. rake db:migrate), and arguably should not be installed in production, but do need to be installed in order to run the tests or load certain development/test specific rake tasks.

    The common suggestion for “config.gem” is to stick those tasks into your “config/environments/test.rb”, but that just aggravates the chicken/egg problem that already exists with “config.gem”.

    I’m currently using erb in the geminstaller.yml to check for ENV[“DEVELOPMENT”], putting guard clauses around particular rake files (e.g. the ones that use rspec or rcov’s rake support) to skip loading of the file if the gem hasn’t been loaded, and then telling developers to use “(cd config; DEVELOPMENT=true geminstaller)”.

    Is there a better way?

Post a Comment

Your Information (Name required. Email address will not be displayed with comment.)

* Copy This Password *

* Type Or Paste Password Here *