Class: Disposable::Twin::Composition
- Inherits:
-
Object
- Object
- Disposable::Twin::Composition
- Extended by:
- Uber::InheritableAttr
- Includes:
- Composition
- Defined in:
- lib/disposable/twin/composition.rb
Class Method Summary collapse
-
.property(name, options, &block) ⇒ Object
this creates one Twin per composed.
Instance Method Summary collapse
-
#initialize(composed) ⇒ Composition
constructor
TODO: test and implement ::collection.
Methods included from Composition
Constructor Details
#initialize(composed) ⇒ Composition
TODO: test and implement ::collection
19 20 21 22 23 24 |
# File 'lib/disposable/twin/composition.rb', line 19 def initialize(composed) twins = {} composed.each { |name, model| twins[name] = self.class.twin_classes[name].new(model) } super(twins) end |
Class Method Details
.property(name, options, &block) ⇒ Object
this creates one Twin per composed.
11 12 13 14 15 16 |
# File 'lib/disposable/twin/composition.rb', line 11 def self.property(name, , &block) twin_classes[[:on]] ||= Class.new(Twin) twin_classes[[:on]].property(name, , &block) map [:on] => [[name]] # why is Composition::map so awkward? end |