From b308f0d4f160307d03c5c7816d536042dc69941d Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 13 May 2013 15:50:16 -0700 Subject: [PATCH] raise an argument error if the filter arity is greater than 1 --- activesupport/lib/active_support/callbacks.rb | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/activesupport/lib/active_support/callbacks.rb b/activesupport/lib/active_support/callbacks.rb index 2eec360042..fc797262d9 100644 --- a/activesupport/lib/active_support/callbacks.rb +++ b/activesupport/lib/active_support/callbacks.rb @@ -250,23 +250,17 @@ def invert_lambda(l) def make_lambda(filter) case filter when Symbol - lambda { |target, value, &blk| target.send filter, &blk } + lambda { |target, _, &blk| target.send filter, &blk } when String l = eval "lambda { |value| #{filter} }" - lambda { |target,value| target.instance_exec(value, &l) } + lambda { |target, value| target.instance_exec(value, &l) } when ::Proc - if filter.arity <= 0 - return lambda { |target, _| target.instance_exec(&filter) } - end + raise ArgumentError if filter.arity > 1 - if filter.arity == 1 - lambda { |target, _| - target.instance_exec(target, &filter) - } + if filter.arity <= 0 + lambda { |target, _| target.instance_exec(&filter) } else - lambda { |target, _| - target.instance_exec target, ::Proc.new, &filter - } + lambda { |target, _| target.instance_exec(target, &filter) } end else scopes = Array(chain_config[:scope]) -- GitLab