1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

alternative resolution to vendor load problem

Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
This commit is contained in:
Matt Jones 2008-11-19 12:13:52 -05:00 committed by David Heinemeier Hansson
parent 9ad165cb9d
commit fb1eebac94

View file

@ -313,8 +313,13 @@ module ActiveSupport #:nodoc:
nesting = expanded_path[(expanded_root.size)..-1] nesting = expanded_path[(expanded_root.size)..-1]
nesting = nesting[1..-1] if nesting && nesting[0] == ?/ nesting = nesting[1..-1] if nesting && nesting[0] == ?/
next if nesting.blank? next if nesting.blank?
nesting_camel = nesting.camelize
[ nesting.camelize ] begin
qualified_const_defined?(nesting_camel)
rescue NameError
next
end
[ nesting_camel ]
end.flatten.compact.uniq end.flatten.compact.uniq
end end
@ -485,28 +490,24 @@ module ActiveSupport #:nodoc:
# Build the watch frames. Each frame is a tuple of # Build the watch frames. Each frame is a tuple of
# [module_name_as_string, constants_defined_elsewhere] # [module_name_as_string, constants_defined_elsewhere]
watch_frames = descs.collect do |desc| watch_frames = descs.collect do |desc|
begin if desc.is_a? Module
if desc.is_a? Module mod_name = desc.name
mod_name = desc.name initial_constants = desc.local_constant_names
initial_constants = desc.local_constant_names elsif desc.is_a?(String) || desc.is_a?(Symbol)
elsif desc.is_a?(String) || desc.is_a?(Symbol) mod_name = desc.to_s
mod_name = desc.to_s
# Handle the case where the module has yet to be defined. # Handle the case where the module has yet to be defined.
initial_constants = if qualified_const_defined?(mod_name) initial_constants = if qualified_const_defined?(mod_name)
mod_name.constantize.local_constant_names mod_name.constantize.local_constant_names
else
[]
end
else else
raise Argument, "#{desc.inspect} does not describe a module!" []
end end
[mod_name, initial_constants] else
rescue NameError raise Argument, "#{desc.inspect} does not describe a module!"
# mod_name isn't a valid constant name
nil
end end
end.compact
[mod_name, initial_constants]
end
constant_watch_stack.concat watch_frames constant_watch_stack.concat watch_frames