Method: Findr::StrategyProxy::ClassMethods#provides

Defined in:
lib/findr/strategy_proxy.rb

#provides(method_name, *argument_names) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/findr/strategy_proxy.rb', line 26

def provides(method_name, *argument_names)
  arglist = argument_names.map(&:to_sym).join(',')
  method_string = <<-END_METHOD
    def #{method_name}(#{arglist})
      @strategy.#{method_name}(#{arglist})
    rescue NoMethodError
      does_not_implement_method(@strategy, '#{method_name}')
    end
  END_METHOD
  class_eval method_string
end