Class: Djoini::Composite
- Inherits:
-
Object
- Object
- Djoini::Composite
- Defined in:
- lib/djoini/composite.rb
Overview
Handles dynamic attributes of the model
Instance Method Summary collapse
- #<<(method) ⇒ Object
- #dispatch(method, *array, &block) ⇒ Object
-
#initialize ⇒ Composite
constructor
A new instance of Composite.
- #reveives?(method) ⇒ Boolean
Constructor Details
#initialize ⇒ Composite
Returns a new instance of Composite.
19 20 21 |
# File 'lib/djoini/composite.rb', line 19 def initialize self.recievers = [] end |
Instance Method Details
#<<(method) ⇒ Object
23 24 25 |
# File 'lib/djoini/composite.rb', line 23 def <<(method) recievers.push(method) end |
#dispatch(method, *array, &block) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/djoini/composite.rb', line 31 def dispatch(method, *array, &block) obj = reciever(method) fail NoMethodError, "No component implements #{method}" unless obj obj.send(method, *array, &block) end |
#reveives?(method) ⇒ Boolean
27 28 29 |
# File 'lib/djoini/composite.rb', line 27 def reveives?(method) reciever(method) end |