module ExMachina::Util
Public Instance Methods
invoke_method(context, meth, *args)
click to toggle source
Invoke method or lambda on given context passing correspondent args
# File lib/ex_machina/util.rb, line 21 def invoke_method(context, meth, *args) return if meth.nil? if meth.respond_to?(:call) all_args = Array([context, *args]) meth_params = meth.parameters meth_args = *all_args.first(meth_params.size) meth.call(*meth_args) elsif context.respond_to?(meth) meth_params = context.method(meth).parameters meth_args = *args.first(meth_params.size) context.send(meth, *meth_args) end end