From: Akira Matsuda Date: 2009-07-21T09:16:36+09:00 Subject: [ruby-dev:38835] DelegateClass元のクラスのprotectedメソッドが呼び出せない 松田と申します。 Ruby 1.9.2から、DeletgateClass元のprotectedメソッドを 呼び出した際の挙動が変わっているように見えるので すが、 これは1.9.2から仕様変更があったということでしょう か? 再現ケースは以下のとおりです。 require 'delegate' class Foo protected def foo 'foo' end end class Bar < DelegateClass(Foo) def initialize super Foo.new end def baz foo end end p Bar.new.baz % ruby19 -v ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9.7.0] % ruby19 binding.rb "foo" % ruby_trunk -v ruby 1.9.2dev (2009-07-19 trunk 24201) [i386-darwin9.7.0] % ruby_trunk binding.rb binding.rb:16:in `baz': protected method `foo' called for # (NoMethodError) from binding.rb:20:in `
' -- Akira Matsuda