класс ActiveSupport::Callbacks::CallTemplate::MethodCall
Публичные методы класса
# File activesupport/lib/active_support/callbacks.rb, line 380 def initialize(method) @method_name = method end
Публичные методы экземпляра
# File activesupport/lib/active_support/callbacks.rb, line 397 def expand(target, value, block) [target, block, @method_name] end
Возвращает части, необходимые для выполнения этого вызова, с заданными входными значениями.
Возвращает массив следующего вида:
[target, block, method, *arguments]
Этот массив может быть использован следующим образом:
target.send(method, *arguments, &block)
Фактическое выполнение вызова остается на усмотрение вызывающей стороны, чтобы минимизировать загрязнение стека вызовов.
# File activesupport/lib/active_support/callbacks.rb, line 407
def inverted_lambda
lambda do |target, value, &block|
!target.send(@method_name, &block)
end
end # File activesupport/lib/active_support/callbacks.rb, line 401
def make_lambda
lambda do |target, value, &block|
target.send(@method_name, &block)
end
end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.