aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/dependencies.rb
diff options
context:
space:
mode:
authorYehuda Katz <yehudakatz@YK.local>2010-02-19 10:10:45 -0800
committerYehuda Katz <yehudakatz@YK.local>2010-02-19 10:12:04 -0800
commit2f98032fc92ce16125f8628b4d3c283f10494f4d (patch)
tree92dc34927eb23f6ab7baf8f50af7804bbefdbff6 /activesupport/lib/active_support/dependencies.rb
parent7d7f9ccfdf986099e3c5abf05af37a886daba0b5 (diff)
downloadrails-2f98032fc92ce16125f8628b4d3c283f10494f4d.tar.gz
rails-2f98032fc92ce16125f8628b4d3c283f10494f4d.tar.bz2
rails-2f98032fc92ce16125f8628b4d3c283f10494f4d.zip
Fix a problem where nil was appearing in the list
Diffstat (limited to 'activesupport/lib/active_support/dependencies.rb')
-rw-r--r--activesupport/lib/active_support/dependencies.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb
index da1050298b..a3a7df7464 100644
--- a/activesupport/lib/active_support/dependencies.rb
+++ b/activesupport/lib/active_support/dependencies.rb
@@ -76,17 +76,19 @@ module ActiveSupport #:nodoc:
locked :concat, :each, :delete_if, :<<
def new_constants_for(frames)
- frames.map do |mod_name, prior_constants|
+ constants = []
+ frames.each do |mod_name, prior_constants|
mod = Inflector.constantize(mod_name) if Dependencies.qualified_const_defined?(mod_name)
next unless mod.is_a?(Module)
new_constants = mod.local_constant_names - prior_constants
get(mod_name).concat(new_constants)
- new_constants.map do |suffix|
- ([mod_name, suffix] - ["Object"]).join("::")
+ new_constants.each do |suffix|
+ constants << ([mod_name, suffix] - ["Object"]).join("::")
end
- end.flatten
+ end
+ constants
end
# Add a set of modules to the watch stack, remembering the initial constants