class Composition::Builders::ComposedFrom
Attributes
object[R]
Public Class Methods
new(object)
click to toggle source
# File lib/composition/builders/composed_from.rb, line 7 def initialize(object) @object = object end
Public Instance Methods
def_composition_setters()
click to toggle source
TODO: add documentation
# File lib/composition/builders/composed_from.rb, line 12 def def_composition_setters _composition_reflections.each_value do |composition| composition.aliases.each do |attr| def_attr_reader(attr) define_method("#{attr}=") { |setter_value| composition.setter(self, attr, setter_value) } define_method(:attributes) { composition.attributes(self) } define_method(:to_h) { composition.attributes(self) } end def_attr_accessor(composition.name) end end
Private Instance Methods
def_attr_accessor(*attr)
click to toggle source
# File lib/composition/builders/composed_from.rb, line 30 def def_attr_accessor(*attr) @object.class.send(:attr_accessor, *attr) end
def_attr_reader(*attr)
click to toggle source
# File lib/composition/builders/composed_from.rb, line 34 def def_attr_reader(*attr) @object.class.send(:attr_reader, *attr) end
define_method(method_name, &block)
click to toggle source
# File lib/composition/builders/composed_from.rb, line 26 def define_method(method_name, &block) @object.class.send(:define_method, method_name, &block) end