Class: Prependers::Prepender
- Inherits:
-
Module
- Object
- Module
- Prependers::Prepender
- Defined in:
- lib/prependers/prepender.rb
Constant Summary collapse
- CLASS_METHODS_MODULE_NAME =
'ClassMethods'
Instance Attribute Summary collapse
-
#namespace ⇒ Object
readonly
Returns the value of attribute namespace.
Instance Method Summary collapse
- #included(base) ⇒ Object
-
#initialize(namespace = nil) ⇒ Prepender
constructor
A new instance of Prepender.
Constructor Details
#initialize(namespace = nil) ⇒ Prepender
Returns a new instance of Prepender.
9 10 11 |
# File 'lib/prependers/prepender.rb', line 9 def initialize(namespace = nil) @namespace = namespace end |
Instance Attribute Details
#namespace ⇒ Object (readonly)
Returns the value of attribute namespace.
7 8 9 |
# File 'lib/prependers/prepender.rb', line 7 def namespace @namespace end |
Instance Method Details
#included(base) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/prependers/prepender.rb', line 13 def included(base) prepended_module_name = base.name.split('::')[0..-2].join('::') if namespace prepended_module_name = (prepended_module_name[(namespace.name.length + 2)..-1]).to_s end prepended_module = Object.const_get(prepended_module_name) prepended_module.prepend base if base.const_defined?(CLASS_METHODS_MODULE_NAME) prepended_module.singleton_class.prepend base.const_get(CLASS_METHODS_MODULE_NAME) end end |