class ActiveEnumerable::MethodCaller
@private
Attributes
__object__[R]
raise_no_method[R]
Public Class Methods
new(object, raise_no_method: true)
click to toggle source
# File lib/active_enumerable/method_caller.rb, line 6 def initialize(object, raise_no_method: true) @__object__ = object @raise_no_method = raise_no_method end
Public Instance Methods
call(method)
click to toggle source
# File lib/active_enumerable/method_caller.rb, line 11 def call(method) if __object__.is_a? Hash wrap_return __object__.fetch(method) else wrap_return __object__.public_send(method) end rescue NoMethodError => e raise e if raise_no_method rescue KeyError => e raise e, "#{e.message} for #{__object__}" if raise_no_method end
method_missing(method)
click to toggle source
# File lib/active_enumerable/method_caller.rb, line 23 def method_missing(method) call(method) end
Private Instance Methods
wrap_return(return_value)
click to toggle source
# File lib/active_enumerable/method_caller.rb, line 29 def wrap_return(return_value) case return_value when Hash self.class.new(return_value, raise_no_method: raise_no_method) else return_value end end