class Djoini::Composite

Handles dynamic attributes of the model

Attributes

recievers[RW]

Public Class Methods

new() click to toggle source
# File lib/djoini/composite.rb, line 19
def initialize
  self.recievers = []
end

Public Instance Methods

<<(method) click to toggle source
# File lib/djoini/composite.rb, line 23
def <<(method)
  recievers.push(method)
end
dispatch(method, *array, &block) click to toggle source
# 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) click to toggle source
# File lib/djoini/composite.rb, line 27
def reveives?(method)
  reciever(method)
end

Private Instance Methods

reciever(method) click to toggle source
# File lib/djoini/composite.rb, line 41
def reciever(method)
  recievers.find { |el| el.respond_to?(method) }
end