æ¾ç”°ã¨ç”³ã—ã¾ã™ã€‚
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 #<Foo:
0x2d01b8> (NoMethodError)
from binding.rb:20:in `’