ruby-changes:4257
From: ko1@a...
Date: Tue, 11 Mar 2008 17:04:03 +0900 (JST)
Subject: [ruby-changes:4257] nobu - Ruby:r15747 (ruby_1_8, trunk): * lib/delegate.rb (Delegator#initialize, DelegateClass): skip correct
nobu 2008-03-11 17:03:26 +0900 (Tue, 11 Mar 2008) New Revision: 15747 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/lib/delegate.rb trunk/ChangeLog Log: * lib/delegate.rb (Delegator#initialize, DelegateClass): skip correct backtrace. [ruby-dev:34019] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=15747&r2=15746&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15747&r2=15746&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/delegate.rb?r1=15747&r2=15746&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15746) +++ ChangeLog (revision 15747) @@ -1,3 +1,8 @@ +Tue Mar 11 17:03:23 2008 Nobuyoshi Nakada <nobu@r...> + + * lib/delegate.rb (Delegator#initialize, DelegateClass): skip correct + backtrace. [ruby-dev:34019] + Tue Mar 11 12:39:53 2008 Nobuyoshi Nakada <nobu@r...> * common.mk (clean-local): WINMAINOBJ is Windows specific. Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 15746) +++ ruby_1_8/ChangeLog (revision 15747) @@ -1,3 +1,8 @@ +Tue Mar 11 17:03:23 2008 Nobuyoshi Nakada <nobu@r...> + + * lib/delegate.rb (Delegator#initialize, DelegateClass): skip correct + backtrace. [ruby-dev:34019] + Tue Mar 11 16:43:53 2008 Nobuyoshi Nakada <nobu@r...> * win32/win32.c (rb_w32_cmdvector): terminate shrunken command line. Index: ruby_1_8/lib/delegate.rb =================================================================== --- ruby_1_8/lib/delegate.rb (revision 15746) +++ ruby_1_8/lib/delegate.rb (revision 15747) @@ -115,6 +115,7 @@ # implementation, see SimpleDelegator. # class Delegator + IgnoreBacktracePat = %r"\A#{Regexp.quote(__FILE__)}:\d+:in `" # # Pass in the _obj_ to delegate method calls to. All methods supported by @@ -133,14 +134,12 @@ for method in obj.methods next if preserved.include? method begin - eval <<-EOS + eval <<-EOS, nil, __FILE__, __LINE__+1 def self.#{method}(*args, &block) begin __getobj__.__send__(:#{method}, *args, &block) - rescue Exception - $@.delete_if{|s| /:in `__getobj__'$/ =~ s} #` - $@.delete_if{|s| /^\\(eval\\):/ =~ s} - Kernel::raise + ensure + $@.delete_if{|s|IgnoreBacktracePat=~s} end end EOS @@ -291,13 +290,12 @@ } for method in methods begin - klass.module_eval <<-EOS + klass.module_eval <<-EOS, __FILE__, __LINE__+1 def #{method}(*args, &block) begin @_dc_obj.__send__(:#{method}, *args, &block) - rescue - $@[0,2] = nil - raise + ensure + $@.delete_if{|s| ::Delegator::IgnoreBacktracePat =~ s} end end EOS -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/