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 methodfoo’ called for #<Foo:
0x2d01b8> (NoMethodError)
from binding.rb:20:in `’

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs