Bug #5776
irb のトップレベルで定義したメソッドが public になる
| Status: | Assigned | Start date: | 12/19/2011 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | lib | |||
| Target version: | 2.0.0 | |||
| ruby -v: | ruby 2.0.0dev (2011-12-15 trunk 34056) [x86_64-darwin11.2.0] |
Description
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
=> #<Object:0x007fe6ca05fd80>
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 メソッドとして定義されます)。
History
Updated by ayumin (Ayumu AIZAWA) 5 months ago
- Category set to lib
- Status changed from Open to Assigned
- Assignee set to keiju (Keiju Ishitsuka)
- Target version set to 2.0.0
1.9.3-p0でも再現することを確認しました。