SuperModule allows defining class methods and method invocations the same way a super class does without using def included(base). This also succeeds ActiveSupport::Concern by offering lighter syntax
Looks like a great project!
One thing that came to my mind is the requirement that include SuperModule has to be the class first include . It seems likely that other users working on a shared project can add more includes before this first include without realising they are breaking things . (its true that usually people add includes to the end and not to the top , but can we really base everything on that assumption?).
I can try finding a solution if you think it's worth it.
Could you provide a description of how this works in the README?
I looked over the code briefly, and it appears to copy the singleton methods of the super module to the module the super module is included in. Is that correct?
Note: I have always thought this should the common behavior of module inclusion.