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