This is a patch to allow configurable search paths for gems in
addition to the vendor/gems directory. However this is rather
tricky to add because there seems to be 3 main times when rails
will want to load up and work with vendor/gems.
1) the Rake tasks to freeze / unfreeze gems
2) the Rails startup code in the very beginning, will try to load
once the gems
3) the time after environment.rb and after the config,gem
in run initializer do |config|.
So far I have succeeded in doing muliple paths for 3), but not
1) and 2).
Its basically an equivalent of config.plugin_paths for plugins
(which is already in rails).
I can put in my environment.rb a configuration line like this:
config.gem_paths = ["#{PLUGIN_PATH}/vendor/gems",
"gem_path2", "gem_path3"]
However this setting the load paths is happen too late in the
environment.rb file, for the rake tasks. The problem is that these
rake tasks and early initialization code don't read the
environment.rb file so am finding the gems management code a little
too complex to be able to accomodate this one.
There are other plans to re-think the gem code (ticket #1721). This
patch is to work right now in the rails 2.3 gems code. Ideally i'd
like to convert my patch to a separate file (monkey-patch) that
could be installed in the app's config directory, instead of
touching the rails source files.
This patch wont interfere the operation of any standard rails
app which stores its gems in vendor/gems. This default load path is
preserved. For a multi-path app, it may generate some warnings /
error for the rake tasks. Runtime behaviour should be fine but no
tests.