aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model
diff options
context:
space:
mode:
authorSubba Rao Pasupuleti <subbarao.pasupuleti@gmail.com>2010-08-03 17:04:41 -0400
committerXavier Noria <fxn@hashref.com>2010-08-14 13:17:30 +0200
commitf8f437191f1cbf37ba842038164c1b873dc453e9 (patch)
treeba8e02a447aebf4e44c44047e8d4b2c3ca037ac1 /activemodel/lib/active_model
parentb61ff257e9ae4b74d4fc3b0d7d24dd15f127de1c (diff)
downloadrails-f8f437191f1cbf37ba842038164c1b873dc453e9.tar.gz
rails-f8f437191f1cbf37ba842038164c1b873dc453e9.tar.bz2
rails-f8f437191f1cbf37ba842038164c1b873dc453e9.zip
no callbacks should be created for empty array [#5289 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activemodel/lib/active_model')
-rw-r--r--activemodel/lib/active_model/callbacks.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/callbacks.rb b/activemodel/lib/active_model/callbacks.rb
index 8c10c54b54..b150fc60f7 100644
--- a/activemodel/lib/active_model/callbacks.rb
+++ b/activemodel/lib/active_model/callbacks.rb
@@ -90,10 +90,13 @@ module ActiveModel
#
def define_model_callbacks(*callbacks)
options = callbacks.extract_options!
- options = { :terminator => "result == false", :scope => [:kind, :name] }.merge(options)
+ options = {
+ :terminator => "result == false",
+ :scope => [:kind, :name],
+ :only => [:before, :around, :after]
+ }.merge(options)
- types = Array.wrap(options.delete(:only))
- types = [:before, :around, :after] if types.empty?
+ types = Array.wrap(options.delete(:only))
callbacks.each do |callback|
define_callbacks(callback, options)