aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2012-03-06 22:04:53 +0100
committerSantiago Pastorino <santiago@wyeworks.com>2012-03-17 17:21:02 -0300
commitc0a5b8505d0fa9095cbee8b709f9aadf630a3716 (patch)
tree2ed6114ec71d3abd5fd335850ec099a66383de56 /activesupport/lib
parente5b46cfb6d2a4055fa25d3d3188a40cc86988b3e (diff)
downloadrails-c0a5b8505d0fa9095cbee8b709f9aadf630a3716.tar.gz
rails-c0a5b8505d0fa9095cbee8b709f9aadf630a3716.tar.bz2
rails-c0a5b8505d0fa9095cbee8b709f9aadf630a3716.zip
Ensure load hooks can be called more than once with different contexts.
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/lazy_load_hooks.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/activesupport/lib/active_support/lazy_load_hooks.rb b/activesupport/lib/active_support/lazy_load_hooks.rb
index 82507c1e03..182d2b793d 100644
--- a/activesupport/lib/active_support/lazy_load_hooks.rb
+++ b/activesupport/lib/active_support/lazy_load_hooks.rb
@@ -18,15 +18,15 @@
# ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)
#
module ActiveSupport
- @load_hooks = Hash.new {|h,k| h[k] = [] }
- @loaded = {}
+ @load_hooks = Hash.new { |h,k| h[k] = [] }
+ @loaded = Hash.new { |h,k| h[k] = [] }
def self.on_load(name, options = {}, &block)
- if base = @loaded[name]
+ @loaded[name].each do |base|
execute_hook(base, options, block)
- else
- @load_hooks[name] << [block, options]
end
+
+ @load_hooks[name] << [block, options]
end
def self.execute_hook(base, options, block)
@@ -38,7 +38,7 @@ module ActiveSupport
end
def self.run_load_hooks(name, base = Object)
- @loaded[name] = base
+ @loaded[name] << base
@load_hooks[name].each do |hook, options|
execute_hook(base, options, hook)
end