Top Level Namespace
Defined Under Namespace
Modules: SuperModule
Instance Method Summary collapse
Instance Method Details
#super_module(name = nil, &super_module_body) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/super_module.rb', line 46 def super_module(name=nil, &super_module_body) initial_ancestor = self.class == Object ? Object : self SuperModule.define(&super_module_body).tap do |new_super_module| if name parent = SuperModule.__super_module_parent(name, initial_ancestor) module_name = name.to_s.split('::').last parent.const_set(module_name, new_super_module) super_module_body = new_super_module.super_module_body new_super_module.class_eval(&super_module_body) end end end |