1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
-- forwatable.rb
$Release Version: 1.1 $
$Revision: 11708 $
$Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
=begin
= Forwardable
饹ФåɤΰѾǽޤ.
== Ȥ
饹ФextendƻȤޤ.
class Foo
extend Forwardable
def_delegators("@out", "printf", "print")
def_delegators(:@in, :gets)
def_delegator(:@contents, :[], "content_at")
end
f = Foo.new
f.printf ...
f.gets
f.content_at(1)
== å
--- Forwardable#def_instance_delegators(accessor, *methods)
((|methods|))Ϥ줿åɤΥꥹȤ((|accessor|))Ѿ
褦ˤޤ.
--- Forwardable#def_instance_delegator(accessor, method, ali = method)
((||method|))Ϥ줿åɤ((|accessor|))˰Ѿ褦ˤ
ޤ. ((|ali|))ȤϤ줿Ȥ, å((|ali|))Ƥ
줿Ȥˤ, ((|accessor|))Ф((|method|))ƤӽФޤ.
--- Forwardable#def_delegators(accessor, *methods)
((|Forwardable#def_instance_delegators|))̾Ǥ.
--- Forwardable#def_delegator(accessor, method, ali = method)
((|Forwardable#def_instance_delegator|))̾Ǥ.
= SingleForwardable
֥ȤФ, åɤΰѾǽޤ.
== Ȥ
֥ȤФ((|extend|))ƻȤޤ.
g = Goo.new
g.extend SingleForwardable
g.def_delegator("@out", :puts)
g.puts ...
== å
--- SingleForwardable#def_singleton_delegators(accessor, *methods)
((|methods|))Ϥ줿åɤΥꥹȤ((|accessor|))˰Ѿ
褦ˤޤ.
--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method)
((|method|))Ϥ줿åɤ((|accessor|))˰Ѿ褦ˤ
. ((|ali|))ȤϤ줿Ȥ, å((|ali|))ƤФ
Ȥˤ, ((|accessor|))Ф((|method|))ƤӽФޤ.
--- SingleForwardable#def_delegators(accessor, *methods)
((|SingleForwardable#def_singleton_delegators|))̾Ǥ.
--- SingleForwardable#def_delegator(accessor, method, ali = method)
((|SingleForwardable#def_singleton_delegator|))̾Ǥ.
=end
|