method_missing
Object.private_methods
ではなく に表示されObject.public_methods
ます。
ただし、呼び出すとObject.method_missing :stupidmethod
、
NoMethodError: undefined method `stupidmethod' for Object:Class
私は得ることを期待します
NoMethodError: private method `method_missing' called for Object:Class
Object
の他のプライベートメソッドを呼び出そうとすると、それが得られるからObject.chop
です。
より多くの証拠としてObject.method_missing
、引数なしで呼び出すと、
ArgumentError: no id given
そのため、オブジェクトの外部からその「プライベート」関数を実際に呼び出しているようです。method_missing
これを説明できますか?
編集: コメントで Eugene に感謝します。 ruby --version
1.8.7を教えてくれます。また、irb --version
0.9.5(05/04/13)です。これが後のバージョンで期待どおりに動作することを知っておくとよいでしょう。