module Findr::StrategyProxy::ClassMethods
Public Instance Methods
provides(method_name, *argument_names)
click to toggle source
# 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
singleton_provides(method_name, *argument_names)
click to toggle source
before using singleton_provides
you must define +@@strategy+ BEFORE FIRST USE of the defined singleton methods
# File lib/findr/strategy_proxy.rb, line 39 def singleton_provides(method_name, *argument_names) arglist = argument_names.map(&:to_sym).join(',') method_string = <<-END_METHOD def self.#{method_name}(#{arglist}) @@strategy.#{method_name}(#{arglist}) rescue NoMethodError does_not_implement_method(@@strategy, 'self.#{method_name}') end END_METHOD class_eval method_string end