diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-07 23:38:52 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-07 23:38:52 +0000 |
commit | 1f7467df661712749bd969c66673e08da616de41 (patch) | |
tree | bf4d2a182e9642d85cc0b8d65ec4861f6364e039 /doc | |
parent | 8a3508acf19b30eb435730862fbae670cb01aae7 (diff) | |
download | ruby-1f7467df661712749bd969c66673e08da616de41.tar.gz ruby-1f7467df661712749bd969c66673e08da616de41.tar.xz ruby-1f7467df661712749bd969c66673e08da616de41.zip |
Initial revision
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'doc')
-rw-r--r-- | doc/forwardable.rd | 84 | ||||
-rw-r--r-- | doc/forwardable.rd.jp | 79 |
2 files changed, 163 insertions, 0 deletions
diff --git a/doc/forwardable.rd b/doc/forwardable.rd new file mode 100644 index 000000000..54a4d83de --- /dev/null +++ b/doc/forwardable.rd @@ -0,0 +1,84 @@ + -- forwardable.rb + + $Release Version: 1.1 $ + $Revision$ + $Date$ + Original version by Tosh + +==begin + += Forwardable + +A Module to define delegations for selected methods to a class. + +== Usage + +Using through extending the class. + + 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) + +== Methods + +--- Forwardable#def_instance_delegators(accessor, *methods) + + adding the delegations for each method of ((|methods|)) to + ((|accessor|)). + +--- Forwardable#def_instance_delegator(accessor, method, ali = method) + + adding the delegation for ((|method|)) to ((|accessor|)). When + you give optional argument ((|ali|)), ((|ali|)) is used as the + name of the delegation method, instead of ((|method|)). + +--- Forwardable#def_delegators(accessor, *methods) + + the alias of ((|Forwardable#def_instance_delegators|)). + +--- Forwardable#def_delegator(accessor, method, ali = method) + + the alias of ((|Forwardable#def_instance_delegator|)). + += SingleForwardable + +a Module to define delegations for selected methods to an object. + +== Usage + +Using through extending the object. + + g = Goo.new + g.extend SingleForwardable + g.def_delegator("@out", :puts) + g.puts ... + +== Methods + +--- SingleForwardable#def_singleton_delegators(accessor, *methods) + + adding the delegations for each method of ((|methods|)) to + ((|accessor|)). + +--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method) + + adding the delegation for ((|method|)) to ((|accessor|)). When + you give optional argument ((|ali|)), ((|ali|)) is used as the + name of the delegation method, instead of ((|method|)). + +--- SingleForwardable#def_delegators(accessor, *methods) + + the alias of ((|SingleForwardable#def_instance_delegators|)). + +--- SingleForwardable#def_delegator(accessor, method, ali = method) + + the alias of ((|SingleForwardable#def_instance_delegator|)). +==end
\ No newline at end of file diff --git a/doc/forwardable.rd.jp b/doc/forwardable.rd.jp new file mode 100644 index 000000000..a7d2ca34c --- /dev/null +++ b/doc/forwardable.rd.jp @@ -0,0 +1,79 @@ + -- forwatable.rb + $Release Version: 1.1 $ + $Revision$ + $Date$ + += 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|))の別名です. |