Transitive engine dependencies

I have an engine that consolidates code used in several in-house applications. For some of its functionality, this engine depends on other, third-party engines. These other engines are declared as runtime dependencies in my engine's gemspec.

Now, when an application using my engine starts up, the engine itself as well as the other engines it depends on are added to the loadpath. Also, asset paths for my engine are added. However, asset paths for engine dependencies are not added. That's as much as I expected. So, I was hoping that if I explicitly load the engines I depend on in an initializer in my engine, they would be picked up for their asset paths. But apparently, that's already too late, then.

So, what this comes to is, that in an application using my own engine, I need to declare that dependency in the app's Gemfile. On top of that, I also need to declare all the transitive engine dependencies. I'd rather not do that.

I'm wondering, did I miss some nice declarative way to say that an engine depends on other engines? Or is this a limitation in the current implementation?

Michael

Hi,

You should require dependencies of an engine before initialization, for example in lib/my_engine/engine.rb file:

require ‘other_engine/engine’

require ‘yet_another_engine/engine’

moduleMyEngine

class Engine < ::Rails::Engine

end

end

Now that you've said it, it seems incredibly obvious.

Thanks!

Michael