retroactive_module_inclusion 1.0.0
This gem circumvents the "dynamic module include" (aka "double inclusion") problem, which is the fact that M.module_eval { include N } does not make the methods of module N available to modules and classes which had included module M beforehand, only to the ones that include it thereafter. This behaviour hurts the least surprise principle, specially because if K is a class, then K.class_eval { include M } _does_ make all methods of M available to all classes which had previously inherited it. This inconsistency stems from implementation efficienty concerns and characterize a limitation in Ruby's object model (see {Dynamic Module Include Problem}[http://eigenclass.org/hiki/The+double+inclusion+problem]).
Gemfile:
=
install:
=
Development Dependencies (1):
hoe
>= 2.8.0