[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]