From: "matz (Yukihiro Matsumoto)" Date: 2013-07-27T13:45:21+09:00 Subject: [ruby-dev:47547] [ruby-trunk - Feature #3753] value of def-expr Issue #3753 has been updated by matz (Yukihiro Matsumoto). Assignee changed from matz (Yukihiro Matsumoto) to usa (Usaku NAKAMURA) We accept this change for 2.1 in the developers' meeting on 2013-07-27. We also think define_method() should return symbols as well. Matz. ---------------------------------------- Feature #3753: value of def-expr https://bugs.ruby-lang.org/issues/3753#change-40701 Author: usa (Usaku NAKAMURA) Status: Assigned Priority: Normal Assignee: usa (Usaku NAKAMURA) Category: core Target version: current: 2.1.0 =begin RubyKaigi見てて思い出したのですが、def式はSymbolを返すようにしませんか? そうすると、 class Foo private def foo() # ... end end などと書けるようになります。 以下パッチ。 Index: vm.c =================================================================== --- vm.c (リビジョン 29124) +++ vm.c (作業コピー) @@ -1893,7 +1893,7 @@ m_core_define_method(VALUE self, VALUE c REWIND_CFP({ vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, 0, rb_vm_cref()); }); - return Qnil; + return sym; } static VALUE @@ -1902,7 +1902,7 @@ m_core_define_singleton_method(VALUE sel REWIND_CFP({ vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, 1, rb_vm_cref()); }); - return Qnil; + return sym; } static VALUE =end -- http://bugs.ruby-lang.org/