From: Shin'ya Adzumi Date: 2002-04-08T11:21:37+09:00 Subject: [ruby-list:34846] Re: module_function の質問← Re: module_function([name ... ]) あづみです。 Take_tk wrote: > (1)宣言型の module_function の機能を無効にする方法はありますか?。 > 次の「????」に入れるようなものです。 > > module M > > module_function > def foo # モジュール関数 > end > def bar # モジュール関数 > end > > ???? > def baz # インスタンスメソッド > end > end 単純に public/private/protected でいけると思います。 module M module_function def foo # モジュール関数 end def bar # モジュール関数 end public def baz # インスタンスメソッド 1 end end class Test include M end puts Test::new.baz # => 1 ただ、module_function すると、特異メソッドだけではなくプライベート メソッドも同時に定義されるので include する場合は注意が必要です。 module M module_function def foo end end p M.singleton_methods # => ["foo"] p M.private_instance_methods # => ["foo"] 安積伸弥 adzumi@denpa.org