21

Just curious if there is an easy way to load more than one Gemfile from a Ruby application.

If you're (quite sensibly) wondering why I would do such a crazy thing...

The situation is that I have one master server (that has its own requirements) that may, in implementation, load modules from any number of other paths on the systems, and each path, right now, has its own Gemfile for the gems used by that module.

Right now I am getting by by editing the server's Gemfile to include all of the gems used by any of the modules, and that seems to be working, but it's definitely inelegant.

tkrajcar
  • 1,702
  • 1
  • 17
  • 34

3 Answers3

17

I use this in my Gemfile:

if File.exists?('Gemfile.devel') then
  eval File.read('Gemfile.devel'), nil, 'Gemfile.devel'
end

The last argument to eval makes exceptions in Gemfile.devel show up with the correct filename.

Paul Brannan
  • 1,625
  • 20
  • 20
15

A Gemfile is "just Ruby". You can search for any other Gemfiles needed and include them, if you want to...

Update: see http://madebynathan.com/2010/10/19/how-to-use-bundler-with-plugins-extensions/

PJK
  • 2,082
  • 3
  • 17
  • 28
0

If I understand your question, capistrano is a bundler aware way to do deployment.

Sean Vikoren
  • 1,084
  • 1
  • 13
  • 24