summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-05-20 14:29:55 +0000
committerzzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-05-20 14:29:55 +0000
commitc2496683823b69f521cc4c738f421eb278eeba61 ()
tree218a5bfac660077f3d936033d63a383a33293826
parent8fb4108bb7aa0d23fb53d46bab749240a8838976 (diff)
reapply r40839 [Fixes GH-313]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/forwardable.rb38
1 files changed, 24 insertions, 14 deletions
@@ -19,30 +19,40 @@
# #record_number(), which simply calls #[] on the <tt>@records</tt>
# array, like this:
#
# class RecordCollection
# extend Forwardable
# def_delegator :@records, :[], :record_number
# end
#
# Further, if you wish to provide the methods #size, #<<, and #map,
# all of which delegate to @records, this is how you can do it:
#
-# class RecordCollection
-# # extend Forwardable, but we did that above
# def_delegators :@records, :size, :<<, :map
# end
-# f = Foo.new
-# f.printf ...
-# f.gets
-# f.content_at(1)
-#
-# If the object isn't a Module and Class, You can too extend Forwardable
-# module.
-#
-# printer = String.new
-# printer.extend Forwardable # prepare object for delegation
-# printer.def_delegator "STDOUT", "puts" # add delegation for STDOUT.puts()
-# printer.puts "Howdy!"
#
# == Another example
#