Project

General

Profile

Bug #5776

irb のトップレベルで定義したメソッドが public になる

Added by hibariya (hi hibariya) about 9 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 2.0.0dev (2011-12-15 trunk 34056) [x86_64-darwin11.2.0]
Backport:
[ruby-dev:<unknown>]

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 メソッドとして定義されます)。


Files

Also available in: Atom PDF