aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorshugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-02 08:53:06 +0000
committershugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-02 08:53:06 +0000
commitb14e2b4401db4746cc45ae9e4ce6350f7594f84f (patch)
tree3726d4898740647bb09ada304ce5f5693664b7cb /test
parenta8b3d67e7c78d6be55e030159db5d611d8b5a247 (diff)
downloadruby-b14e2b4401db4746cc45ae9e4ce6350f7594f84f.tar.gz
* object.c (rb_mod_to_s): Module#{to_s,inspect}, when invoked on
a refinement, returns a string in the format #<refinement:C@M>, where C is a refined class and M is a module at which the refinemet is defined. * eval.c (rb_mod_refine): store information on a refinement for the above change. * test/ruby/test_refinement.rb: related test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_refinement.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/ruby/test_refinement.rb b/test/ruby/test_refinement.rb
index 4a0e6d1327..eee66105b1 100644
--- a/test/ruby/test_refinement.rb
+++ b/test/ruby/test_refinement.rb
@@ -622,4 +622,28 @@ class TestRefinement < Test::Unit::TestCase
def test_symbol_to_proc
assert_equal("foo", SymbolToProc::M.call_foo)
end
+
+ module Inspect
+ module M
+ refine Fixnum do
+ end
+ end
+ end
+
+ def test_inspect
+ assert_equal("#<refinement:Fixnum@TestRefinement::Inspect::M>",
+ Inspect::M.refinements[Fixnum].inspect)
+
+ c = Class.new
+ m = Module.new {
+ refine String do
+ end
+ refine c do
+ end
+ }
+ assert_equal("#<refinement:String@#{m.inspect}>",
+ m.refinements[String].inspect)
+ assert_equal("#<refinement:#{c.inspect}@#{m.inspect}>",
+ m.refinements[c].inspect)
+ end
end