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]).
Required Ruby Version
None
Authors
Adriano Mitre
Versions
- 1.2.5 January 26, 2011 (11 KB)
- 1.2.4 January 24, 2011 (11 KB)
- 1.2.3 January 24, 2011 (11 KB)
- 1.2.2 January 24, 2011 (11 KB)
- 1.2.1 January 24, 2011 (11 KB)
- 1.0.1 January 20, 2011 (10 KB)