mirror of
https://github.com/github/rails.git
synced 2026-01-29 00:08:15 -05:00
Fix Dependencies watch_frames collection. [#24 state:resolved]
Previously, the code collecting watch_frames could fail leaving watch_frames defined but nil. The cleanup code checks watch_frames is defined, but not that it holds a value, raising an undefined method on NilClass error rather than the original cause. This can make debugging the underlying cause a total pain. Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
@@ -384,7 +384,7 @@ module Dependencies #:nodoc:
|
||||
return new_constants
|
||||
ensure
|
||||
# Remove the stack frames that we added.
|
||||
if defined?(watch_frames) && ! watch_frames.empty?
|
||||
if defined?(watch_frames) && ! watch_frames.blank?
|
||||
frame_ids = watch_frames.collect(&:object_id)
|
||||
constant_watch_stack.delete_if do |watch_frame|
|
||||
frame_ids.include? watch_frame.object_id
|
||||
|
||||
@@ -584,6 +584,12 @@ class DependenciesTest < Test::Unit::TestCase
|
||||
assert_equal [], m
|
||||
end
|
||||
|
||||
def test_new_constants_in_with_illegal_module_name_raises_correct_error
|
||||
assert_raises(NameError) do
|
||||
Dependencies.new_constants_in("Illegal-Name") {}
|
||||
end
|
||||
end
|
||||
|
||||
def test_file_with_multiple_constants_and_require_dependency
|
||||
with_loading 'autoloading_fixtures' do
|
||||
assert ! defined?(MultipleConstantFile)
|
||||
|
||||
Reference in New Issue
Block a user