From 09a7d0173b672e9ba2e0062bf23acbf232afe1cc Mon Sep 17 00:00:00 2001 From: wyhaines Date: Wed, 9 Jun 2010 17:06:24 +0000 Subject: [PATCH] lib/delegate.rb: Backport #1781 [ruby-core:24356]; allow a block to be properly passed through. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@28239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 +++++- lib/delegate.rb | 12 ++++++------ version.h | 8 ++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index bb7047d541..55db17c6ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ +Thu Jun 10 01:40:00 Kirk Haines + + * lib/delegate.rb: Backport #1781 [ruby-core:24356]; allow a block to be properly passed through. + Wed Jun 9 04:35:00 Kirk Haines - * gc.c: Backport #1785 [ruby-core:24395]; check to make sure finalizer_table isn't null before trying to run finalizers. + * gc.c: Backport #1785 [ruby-core:24395]; check to make sure finalizer_table isn't null before trying to run finalizers. r28235 Wed Jun 9 02:10:00 Kirk Haines diff --git a/lib/delegate.rb b/lib/delegate.rb index ee5fe8d7fe..66119caaa3 100644 --- a/lib/delegate.rb +++ b/lib/delegate.rb @@ -152,12 +152,12 @@ class Delegator alias initialize_methods initialize # Handles the magic of delegation through \_\_getobj\_\_. - def method_missing(m, *args) + def method_missing(m, *args, &block) target = self.__getobj__ unless target.respond_to?(m) - super(m, *args) + super(m, *args, &block) end - target.__send__(m, *args) + target.__send__(m, *args, &block) end # @@ -265,11 +265,11 @@ def DelegateClass(superclass) def initialize(obj) # :nodoc: @_dc_obj = obj end - def method_missing(m, *args) # :nodoc: + def method_missing(m, *args, &block) # :nodoc: unless @_dc_obj.respond_to?(m) - super(m, *args) + super(m, *args, &block) end - @_dc_obj.__send__(m, *args) + @_dc_obj.__send__(m, *args, &block) end def respond_to?(m, include_private = false) # :nodoc: return true if super diff --git a/version.h b/version.h index f399aa9115..6c1b7e5b55 100644 --- a/version.h +++ b/version.h @@ -1,15 +1,15 @@ #define RUBY_VERSION "1.8.6" -#define RUBY_RELEASE_DATE "2010-06-09" +#define RUBY_RELEASE_DATE "2010-06-10" #define RUBY_VERSION_CODE 186 -#define RUBY_RELEASE_CODE 20100609 -#define RUBY_PATCHLEVEL 411 +#define RUBY_RELEASE_CODE 20100610 +#define RUBY_PATCHLEVEL 412 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 #define RUBY_VERSION_TEENY 6 #define RUBY_RELEASE_YEAR 2010 #define RUBY_RELEASE_MONTH 6 -#define RUBY_RELEASE_DAY 9 +#define RUBY_RELEASE_DAY 10 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[];