ruby-changes:28806
From: zzak <ko1@a...>
Date: Mon, 20 May 2013 22:33:16 +0900 (JST)
Subject: [ruby-changes:28806] zzak:r40858 (trunk): Revert r40839 for demo
zzak 2013-05-20 22:33:08 +0900 (Mon, 20 May 2013) New Revision: 40858 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=40858 Log: Revert r40839 for demo Modified files: trunk/lib/forwardable.rb Index: lib/forwardable.rb =================================================================== --- lib/forwardable.rb (revision 40857) +++ lib/forwardable.rb (revision 40858) @@ -19,40 +19,30 @@ https://github.com/ruby/ruby/blob/trunk/lib/forwardable.rb#L19 # #record_number(), which simply calls #[] on the <tt>@records</tt> # 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 -# -# 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] -# -# 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!" +# 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 # -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/