I was working on converting a plugin to a gem which had a few Rake tasks. After packaging it as a gem, I noticed it didn't include the Rake tasks for it.
I tracked it down to railties/lib/tasks/rails.rb, and saw that it wasn't actually doing anything for gems.
I could see two ways of dealing with this:
Add a line to tasks/rails like:
Dir["#{RAILS_ROOT}/vendor/gems/*/tasks/**/*.rake"].sort.each { |ext| load ext }
Look for under tasks under the gem's lib, ie foo would look under vendor/gems/foo/lib/foo/tasks/**/*.rake. I imagine it'd look something like:
Rails.configuration.gems.each do |gem|
gem_dir = File.join(RAILS_ROOT, 'vendor', 'gems', gem.name)
Dir["#{gem_dir}/#{gem.lib || gem.name}/tasks/**/*.rake"].sort.each { |ext| load ext }
end