ルビー1.8.7、メインでrequireを使用できるのに、self.requireを使用できないのはなぜですか?
require('date') # ok
self.require('date')
NoMethodError: private method `require' called for main:Object
from (irb):22
from /usr/lib/ruby/1.8/date.rb:437
mainがオブジェクトクラスであることはよく知られています:irb(main):045:0> self => main
irb(main):043:0> self.class
=> Object
しかし、私はそれがカーネルミックスインを持っていることを発見しました:
irb(main):042:0> self.class.included_modules
=> [Kernel]
さらに、requireは自己の私的な方法であることがわかりました。
irb(main):037:0> self.private_methods
=> [... "require", ...]
同様に、self.attr_accessorは使用できません。
irb(main):051:0> class X
irb(main):052:1> self.attr_accessor(:ssss)
irb(main):053:1> end
NoMethodError: private method `attr_accessor' called for X:Class
from (irb):52
from /usr/lib/ruby/1.8/date.rb:437
それはどのように起こったのですか?誰かがその質問を明確にすることができますか?