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