diff options
Diffstat (limited to 'test/ruby')
| -rw-r--r-- | test/ruby/test_refinement.rb | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/test/ruby/test_refinement.rb b/test/ruby/test_refinement.rb index 3ca00ed912..3b8a0cd658 100644 --- a/test/ruby/test_refinement.rb +++ b/test/ruby/test_refinement.rb @@ -726,7 +726,6 @@ class TestRefinement < Test::Unit::TestCase end def test_inline_method_cache - skip "can't implement efficiently with the current implementation of refinements" c = InlineMethodCache::C.new f = Proc.new { c.foo } assert_equal("original", f.call) @@ -822,4 +821,31 @@ class TestRefinement < Test::Unit::TestCase end end end + + module RedifineRefinedMethod + class C + def foo + "original" + end + end + + module M + refine C do + def foo + "refined" + end + end + end + + class C + def foo + "redefined" + end + end + end + + def test_redefine_refined_method + c = RedifineRefinedMethod::C.new + assert_equal("refined", RedifineRefinedMethod::M.module_eval { c.foo }) + end end |
