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

ruby-changes:13591

From: matz <ko1@a...>
Date: Fri, 16 Oct 2009 20:04:30 +0900 (JST)
Subject: [ruby-changes:13591] Ruby:r25372 (trunk): * lib/delegate.rb (Delegator#respond_to_missing): warn if optional

matz	2009-10-16 20:04:15 +0900 (Fri, 16 Oct 2009)

  New Revision: 25372

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25372

  Log:
    * lib/delegate.rb (Delegator#respond_to_missing): warn if optional
      include_private argument is not false.  Delegator does (and
      should) not forward private methods.  [ruby-core:26080]
    
    * lib/delegate.rb (Delegator#respond_to_missing): instead of
      redefining #respond_to?, use #respond_to_missing?.

  Modified files:
    trunk/ChangeLog
    trunk/lib/delegate.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 25371)
+++ ChangeLog	(revision 25372)
@@ -1,3 +1,12 @@
+Fri Oct 16 19:39:28 2009  Yukihiro Matsumoto  <matz@r...>
+
+	* lib/delegate.rb (Delegator#respond_to_missing): warn if optional
+	  include_private argument is not false.  Delegator does (and
+	  should) not forward private methods.  [ruby-core:26080]
+
+	* lib/delegate.rb (Delegator#respond_to_missing): instead of
+	  redefining #respond_to?, use #respond_to_missing?.
+
 Fri Oct 16 18:42:18 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* bootstraptest/test_gc.rb: added tests based on [ruby-dev:39484]
Index: lib/delegate.rb
===================================================================
--- lib/delegate.rb	(revision 25371)
+++ lib/delegate.rb	(revision 25372)
@@ -146,9 +146,11 @@
   # Checks for a method provided by this the delegate object by fowarding the
   # call through \_\_getobj\_\_.
   #
-  def respond_to?(m, include_private = false)
-    return true if super
-    return self.__getobj__.respond_to?(m, include_private)
+  def respond_to_missing?(m, include_private = false)
+    if include_private
+      warn "#{caller(3)[0]}: delegator does not forward private methods"
+    end
+    self.__getobj__.respond_to?(m)
   end
 
   #

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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