From 09c348239927dd6a09cfc747b746fa1087b0ba1c Mon Sep 17 00:00:00 2001 From: zzak Date: Thu, 23 May 2013 04:09:42 +0000 Subject: [PATCH] revert forwardable rdoc patch for demo git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/forwardable.rb | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/lib/forwardable.rb b/lib/forwardable.rb index ecc5f03843..0f8807aac1 100644 --- a/lib/forwardable.rb +++ b/lib/forwardable.rb @@ -19,40 +19,30 @@ # #record_number(), which simply calls #[] on the @records # array, like this: # -# require 'forwardable' -# # class RecordCollection -# attr_accessor :records # extend Forwardable # def_delegator :@records, :[], :record_number # end # -# We can use the lookup method like so: -# -# r = RecordCollection.new -# r.records = [4,5,6] -# r.record_number(0) # => 4 -# # 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 # re-open RecordCollection class +# 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) # -# r = RecordCollection.new -# r.records = [1,2,3] -# r.record_number(0) # => 1 -# r.size # => 3 -# r << 4 # => [1, 2, 3, 4] -# r.map { |x| x * 2 } # => [2, 4, 6, 8] +# If the object isn't a Module and Class, You can too extend Forwardable +# module. # -# You can even extend regular objects with Forwardable. -# -# my_hash = Hash.new -# my_hash.extend Forwardable # prepare object for delegation -# my_hash.def_delegator "STDOUT", "puts" # add delegation for STDOUT.puts() -# my_hash.puts "Howdy!" +# 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 #