diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-25 07:57:42 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-06-25 07:57:42 +0000 |
commit | e6f1e3f49db1694116d286666ccaa026cad61f3e (patch) | |
tree | f65585b755a1ab98bd697e3c7f23f4ba48f55ab9 /test/ruby/test_method.rb | |
parent | 0f0f0f4441e1e8845bf37f6eee712d9f4f73b908 (diff) | |
download | ruby-e6f1e3f49db1694116d286666ccaa026cad61f3e.tar.gz |
method transplanting
* proc.c (rb_mod_define_method): allow method transplanting from a
module to either class or module. [ruby-core:34267][Feature #4254]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_method.rb')
-rw-r--r-- | test/ruby/test_method.rb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb index ed04570e6a..e299b722ee 100644 --- a/test/ruby/test_method.rb +++ b/test/ruby/test_method.rb @@ -36,7 +36,7 @@ class TestMethod < Test::Unit::TestCase module M def func; end module_function :func - def meth; end + def meth; :meth end end def mv1() end @@ -230,9 +230,11 @@ class TestMethod < Test::Unit::TestCase Module.new.module_eval {define_method(:foo, Base.instance_method(:foo))} end - assert_raise(TypeError) do - Class.new.class_eval {define_method(:meth, M.instance_method(:meth))} - end + feature4254 = '[ruby-core:34267]' + m = Module.new {define_method(:meth, M.instance_method(:meth))} + assert_equal(:meth, Object.new.extend(m).meth, feature4254) + c = Class.new {define_method(:meth, M.instance_method(:meth))} + assert_equal(:meth, c.new.meth, feature4254) end def test_super_in_proc_from_define_method |