aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/callbacks.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-06-19 16:58:12 +0200
committerJosé Valim <jose.valim@gmail.com>2010-06-19 16:58:15 +0200
commita2b7fcb07ca47ca2285dee2afe97050532e94d07 (patch)
tree238b4e7c1e8a247495d34bc147a9cfb9e702996e /activesupport/lib/active_support/callbacks.rb
parent8db8c6f4ce3e8dd7f90553ab7866bf9991773b98 (diff)
downloadrails-a2b7fcb07ca47ca2285dee2afe97050532e94d07.tar.gz
rails-a2b7fcb07ca47ca2285dee2afe97050532e94d07.tar.bz2
rails-a2b7fcb07ca47ca2285dee2afe97050532e94d07.zip
Change callbacks to automatically include DescendantsTracker and rename descendents to descendants.
Diffstat (limited to 'activesupport/lib/active_support/callbacks.rb')
-rw-r--r--activesupport/lib/active_support/callbacks.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/callbacks.rb b/activesupport/lib/active_support/callbacks.rb
index 3ff33eea72..c4e1eb2c04 100644
--- a/activesupport/lib/active_support/callbacks.rb
+++ b/activesupport/lib/active_support/callbacks.rb
@@ -1,6 +1,6 @@
+require 'active_support/descendants_tracker'
require 'active_support/core_ext/array/wrap'
require 'active_support/core_ext/class/inheritable_attributes'
-require 'active_support/core_ext/class/subclasses'
require 'active_support/core_ext/kernel/reporting'
require 'active_support/core_ext/kernel/singleton_class'
@@ -85,6 +85,10 @@ module ActiveSupport
module Callbacks
extend Concern
+ included do
+ extend ActiveSupport::DescendantsTracker
+ end
+
def run_callbacks(kind, *args, &block)
send("_run_#{kind}_callbacks", *args, &block)
end
@@ -428,7 +432,7 @@ module ActiveSupport
options = filters.last.is_a?(Hash) ? filters.pop : {}
filters.unshift(block) if block
- ([self] + self.descendents).each do |target|
+ ([self] + self.descendants).each do |target|
chain = target.send("_#{name}_callbacks")
yield chain, type, filters, options
target.__define_runner(name)
@@ -502,7 +506,7 @@ module ActiveSupport
def reset_callbacks(symbol)
callbacks = send("_#{symbol}_callbacks")
- self.descendents.each do |target|
+ self.descendants.each do |target|
chain = target.send("_#{symbol}_callbacks")
callbacks.each { |c| chain.delete(c) }
target.__define_runner(symbol)