class ActiveSupport::Callbacks::CallTemplate::MethodCall

Public Class Methods

new(method) click to toggle source
# File lib/active_support/callbacks.rb, line 377
def initialize(method)
  @method_name = method
end

Public Instance Methods

expand(target, value, block) click to toggle source

Return the parts needed to make this call, with the given input values.

Returns an array of the form:

[target, block, method, *arguments]

This array can be used as such:

target.send(method, *arguments, &block)

The actual invocation is left up to the caller to minimize call stack pollution.

# File lib/active_support/callbacks.rb, line 394
def expand(target, value, block)
  [target, block, @method_name]
end
inverted_lambda() click to toggle source
# File lib/active_support/callbacks.rb, line 404
def inverted_lambda
  lambda do |target, value, &block|
    !target.send(@method_name, &block)
  end
end
make_lambda() click to toggle source
# File lib/active_support/callbacks.rb, line 398
def make_lambda
  lambda do |target, value, &block|
    target.send(@method_name, &block)
  end
end