diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2009-01-01 18:13:14 +0100 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2009-01-01 18:13:14 +0100 |
commit | f1e20ce9a781eb73e421678fc8149eba77ddc6f6 (patch) | |
tree | c88842ff5196f2fe0bd02af6d544f9dc87647789 /activesupport/lib | |
parent | 49a055dff639164435dfb71bf18d695970eedac9 (diff) | |
parent | a5004573d8d132fe079242fc082ab4661b0976e9 (diff) | |
download | rails-f1e20ce9a781eb73e421678fc8149eba77ddc6f6.tar.gz rails-f1e20ce9a781eb73e421678fc8149eba77ddc6f6.tar.bz2 rails-f1e20ce9a781eb73e421678fc8149eba77ddc6f6.zip |
Merge branch 'master' of git@github.com:rails/rails
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/callbacks.rb | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/activesupport/lib/active_support/callbacks.rb b/activesupport/lib/active_support/callbacks.rb index 992827f7f4..86e66e0588 100644 --- a/activesupport/lib/active_support/callbacks.rb +++ b/activesupport/lib/active_support/callbacks.rb @@ -192,13 +192,8 @@ module ActiveSupport end def should_run_callback?(*args) - if options[:if] - evaluate_method(options[:if], *args) - elsif options[:unless] - !evaluate_method(options[:unless], *args) - else - true - end + [options[:if]].flatten.compact.all? { |a| evaluate_method(a, *args) } && + ![options[:unless]].flatten.compact.any? { |a| evaluate_method(a, *args) } end end |