ruby-changes:19641
From: drbrain <ko1@a...>
Date: Sun, 22 May 2011 11:18:20 +0900 (JST)
Subject: [ruby-changes:19641] drbrain:r31685 (trunk): * lib/forwardable.rb: Document def_delegator. Patch by Sandor Szucs.
drbrain 2011-05-22 11:14:57 +0900 (Sun, 22 May 2011) New Revision: 31685 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31685 Log: * lib/forwardable.rb: Document def_delegator. Patch by Sandor Szucs. [Ruby 1.9 - Bug #4752] Modified files: trunk/ChangeLog trunk/lib/forwardable.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 31684) +++ ChangeLog (revision 31685) @@ -1,7 +1,12 @@ +Sun May 22 11:14:40 2011 Eric Hodel <drbrain@s...> + + * lib/forwardable.rb: Document def_delegator. Patch by Sandor Szucs. + [Ruby 1.9 - Bug #4752] + Sun May 22 11:11:41 2011 Eric Hodel <drbrain@s...> * lib/fileutils.rb: Document block behavior of FileUtils.cd. Patch by - Bil Kleb. [Ruby 1.9 - Bug 4751] + Bil Kleb. [Ruby 1.9 - Bug #4751] Sun May 22 11:07:47 2011 Eric Hodel <drbrain@s...> Index: lib/forwardable.rb =================================================================== --- lib/forwardable.rb (revision 31684) +++ lib/forwardable.rb (revision 31685) @@ -175,6 +175,25 @@ end end + # Define +method+ as delegator instance method with an optional + # alias name +ali+. Method calls to +ali+ will be delegated to + # +accessor.method+. + # + # class MyQueue + # extend Forwardable + # attr_reader :queue + # def initialize + # @queue = [] + # end + # + # def_delegator :@queue, :push, :mypush + # end + # + # q = MyQueue.new + # q.mypush 42 + # q.queue #=> [42] + # q.push 23 #=> NoMethodError + # def def_instance_delegator(accessor, method, ali = method) line_no = __LINE__; str = %{ def #{ali}(*args, &block) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/