module ActionArgs::ActiveSupport::CallbackParameterizerLegacy

For Rails 4 & 5.0

Public Instance Methods

make_lambda(filter) click to toggle source

Extending AS::Callbacks::Callback's `make_lambda` not just to call specified method but to call the method with method parameters taken from `params`. This would happen only when

  • the filter was defined in Symbol form

  • the target object is_a ActionController object

Calls superclass method
# File lib/action_args/callbacks.rb, line 40
def make_lambda(filter)
  if Symbol === filter
    lambda do |target, _, &blk|
      if ActionController::Base === target
        target.strengthen_params! filter
        values, kwargs_values = target.extract_method_arguments_from_params filter
        values << kwargs_values if kwargs_values.any?
        target.send filter, *values, &blk
      else
        target.send filter, &blk
      end
    end
  else
    super
  end
end