From: Ayumu AIZAWA Date: 2012-01-04T00:12:12+09:00 Subject: [ruby-dev:45084] [ruby-trunk - Bug #5776][Assigned] irb のトップレベルで定義したメソッドが public になる Issue #5776 has been updated by Ayumu AIZAWA. Category set to lib Status changed from Open to Assigned Assignee set to Keiju Ishitsuka Target version set to 2.0.0 1.9.3-p0でも再現することを確認しました。 ---------------------------------------- Bug #5776: irb のトップレベルで定義したメソッドが public になる https://bugs.ruby-lang.org/issues/5776 Author: hi hibariya Status: Assigned Priority: Normal Assignee: Keiju Ishitsuka Category: lib Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2011-12-15 trunk 34056) [x86_64-darwin11.2.0] irb のトップレベルで定義したメソッドの呼び出し制限が private ではなく public になってしまいます。 ------------------------------------------------- irb(main):001:0> def greeting irb(main):002:1> 'hi' irb(main):003:1> end => nil irb(main):004:0> val = Object.new => # irb(main):005:0> val.greeting => "hi" irb(main):006:0> val.private_methods.grep /greeting/ => [] irb(main):007:0> val.public_methods.grep /greeting/ => [:greeting] ------------------------------------------------- public になるのは irb で実行したときのみです(ファイルに保存して ruby コマンドで実行した場合は private メソッドとして定義されます)。 -- http://redmine.ruby-lang.org