class Composition::Builders::Compose

Attributes

object[R]

Public Class Methods

new(object) click to toggle source
# File lib/composition/builders/compose.rb, line 7
def initialize(object)
  @object = object
end

Public Instance Methods

def_composition_methods() click to toggle source
# File lib/composition/builders/compose.rb, line 11
def def_composition_methods
  _composition_reflections.each_value do |composition|
    def_composition_getter(composition)
    def_composition_setter(composition)
  end
end

Private Instance Methods

def_composition_getter(composition) click to toggle source
# File lib/composition/builders/compose.rb, line 20
def def_composition_getter(composition)
  define_method(composition.name) { composition.getter(self) }
end
def_composition_setter(composition) click to toggle source
# File lib/composition/builders/compose.rb, line 24
def def_composition_setter(composition)
  define_method("#{composition.name}=") { |setter_value| composition.setter(self, setter_value) }
end
define_method(method_name, &block) click to toggle source
# File lib/composition/builders/compose.rb, line 28
def define_method(method_name, &block)
  @object.class.send(:define_method, method_name, &block)
end