Module: Fabrik::Composer

Included in:
Trait
Defined in:
lib/fabrik/composer.rb

Instance Method Summary collapse

Instance Method Details

#compose(*method_maps) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/fabrik/composer.rb', line 6

def compose(*method_maps)
  method_maps.map! { |m| Hash === m ? m : m.methods }
  resolved_method_map = Resolver.new(method_maps).resolved_method_map
  resolved_method_map.each do |name, method|
    unless self.instance_methods(false).include?(name)
      self.send(:define_method, name, method)
    end
  end
end