Branch: refs/heads/master Home: https://github.com/MacRuby/MacRuby Commit: fdc3e9e2d25383b95eab5c55bd6fbece79185253 https://github.com/MacRuby/MacRuby/commit/fdc3e9e2d25383b95eab5c55bd6fbece79... Author: Watson <watson1978@gmail.com> Date: 2011-07-18 (Mon, 18 Jul 2011) Changed paths: M proc.c M spec/frozen/tags/macruby/core/kernel/define_singleton_method_tags.txt M spec/frozen/tags/macruby/core/module/define_method_tags.txt Log Message: ----------- Module#define_method will accept an UnboundMethod's object into 2nd argument. Test Script: {{{ require 'test/unit/assertions.rb' include Test::Unit::Assertions # should accept an UnboundMethod's object class Bar def foo "foo" end define_method(:foo, instance_method(:foo)) end assert_equal("foo", Bar.new.foo) # should not accept an other object's singleton method foo = Module.new class << foo def singleton_method :single end end um = foo.method(:singleton_method).unbind other = Module.new assert_raise(TypeError) { other.send :define_method, :other_singleton_method, um } puts :ok }}}