--- define_method(name, method)
--- define_method(name) { ... }

    󥹥󥹥᥽å name ޤ
    method ˤ ProcMethod 뤤
    UnboundMethod Τ줫Υ󥹥󥹤ꤷޤ
     method ͿȤϤ򡢥֥åդ
    ƤӤȤϥ֥å Proc ֥Ȥ
    줾֤ޤ

    :

        class Foo
          def foo() p :foo end
          define_method(:bar, instance_method(:foo))
        end
        Foo.new.bar    # => :foo

    ֥åͿ硢Ruby 1.7 ʹߤǤϡ᥽å
    μ¹Ի˥֥å쥷Х饹Υ󥹥󥹤ξ
    instance_eval ޤ
     Ruby 1.6 Ǥϥ֥åȥ᥽åɤδϢŤԤǡ
    ᥽åɤμ¹Իˤϥ֥åΥƥȤΤޤޤ
    ¹ԤޤȤаʲ򻲾ȤƤ

        class C
        end
        # 󥹥󥹥᥽å print_self 
        #  define_method ϥץ饤١ȥ᥽å
        # ʤΤľܤϸƤ٤ʤ__send__ 𤷤ƸƤ֡
        C.__send__(:define_method, :print_self) { p self }

        # 1.6 ξ
        C.new.print_self    #=> main
        # 1.7 ξ
        C.new.print_self    #=> #<C:0x4015b490>

