From: "nobu (Nobuyoshi Nakada)" Date: 2013-05-26T00:03:24+09:00 Subject: [ruby-core:55163] [ruby-trunk - Feature #4254] Allow method transplanting Issue #4254 has been updated by nobu (Nobuyoshi Nakada). =begin Seems fine. $ ruby -v -e 'module M; def foo; :foo;end; end; p m = M.instance_method(:foo).bind(Object.new); p m.call' ruby 2.1.0dev (2013-05-25 trunk 40923) [universal.x86_64-darwin11] # :foo Please open new ticket if needed. =end ---------------------------------------- Feature #4254: Allow method transplanting https://bugs.ruby-lang.org/issues/4254#change-39529 Author: zimbatm (Jonas Pfenniger) Status: Closed Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: core Target version: 2.0.0 =begin Is there a technical reason to not allow re-binding a method from one module to any other module ? module M def foo; "foo"; end end module N; end N.send(:define_method, :foo, M.instance_method(:foo)) #=> should not raise It's like monkey-patching. Powerful, dangerous, but also really useful. It could allow different variations of method_wrap or alias_method_chain that are not possible right now. =end -- http://bugs.ruby-lang.org/