Requiring in cascade : a question

Suppose you have two gems, say ‘gemA’, and ‘gemB’ which needs ‘gemA’. Of
course you describe the dependency in the gemspec.

But you have two requiring strategies. Either, you require gemA in gemB
init code, and in your application you require explicitely only gemB.
Or, you do not require gemA in gemB, but require gemA and gemB in your
application.

The first seems more logical. But for instance, it gives an error in
Shoes, because Shoes’ internal ruby does not know how to require gems
and you have to require everything in Shoes.setup.

My question is : independently of the Shoes constraint, which way would
you generally choose ?

_md

If a gem uses other gems in order to operate, it should require those
gems itself. Having to remember what the dependency of that gem was
whenever you require it is awkward.

Joel P. wrote in post #1159812:

If a gem uses other gems in order to operate, it should require those
gems itself. Having to remember what the dependency of that gem was
whenever you require it is awkward.

Indeed !
_md