paths for configured gems

I would like to get a list of the paths of configured gems.

A list of gem dependencies can be found by:

Rails.configuration.gems

...which returns a bunch of Rails::GemDependency but I can't figure
out how to get a path to the root of the gem.

I can get the gem root from ENV['GEM_HOME'] but I can only get the
name of the gem and the version *requirement* from the GemDependency.
The version requirement isn't necessarily the same version that is
being loaded, since it could be a >= requirement.
Any suggestions?

For what it's worth, I'm trying to hack something that will auto-load
rake tasks from configured gems.

Thanks!

I would like to get a list of the paths of configured gems.

A list of gem dependencies can be found by:

Rails.configuration.gems

...which returns a bunch of Rails::GemDependency but I can't figure
out how to get a path to the root of the gem.

If you've got a Rails::GemDependency object, you can grab the
specification and get the path you're looking for:

@gem_dep.specification.full_gem_path

This will work on both vendor and system gems.

For what it's worth, I'm trying to hack something that will auto-load
rake tasks from configured gems.

Note that this is a consistent issue with the 2.x gem loader; there
are a number of tickets along the same lines:

https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/59
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/2728

The ultimate problem is that Rake doesn't (by default) actually load
the Rails environment (tasks can, by specifying a dependency on
the :environment task). So the gems aren't "configured" by default.
The same problem pops up when trying to load generators from vendor/
gems.

--Matt Jones