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/