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. 1.2.5 January 26, 2011 (11 KB)
  2. 1.2.4 January 24, 2011 (11 KB)
  3. 1.2.3 January 24, 2011 (11 KB)
  4. 1.2.2 January 24, 2011 (11 KB)
  5. 1.2.1 January 24, 2011 (11 KB)
  6. 1.0.0 January 20, 2011 (10 KB)
Show all versions (11 total)

SHA 256 checksum