¾ç¨ç
Ruby 1.9.2 eletgateClassprotected¡ã¥¹¼ãºã®æµõåá¸ç¡¢²å£ïåá¡×åá¥òåá¨å£ëåâ°å¡æåᥩð¨¶å¡èåâ¶å¢°åᥡ
.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 `<main>'
--
Akira Matsuda<ronnie / dio.jp>