From 78fea697769ce47a87c92f9baee8621f48f8ace3 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 16 Oct 2009 11:20:06 +0000 Subject: [PATCH] * lib/delegate.rb (Delegator#method_missing): remove backtrace lines _until_ `method_missing'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/delegate.rb | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2dbc3d3556..614c223b6f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 16 20:18:28 2009 Yukihiro Matsumoto + + * lib/delegate.rb (Delegator#method_missing): remove backtrace + lines _until_ `method_missing'. + Fri Oct 16 20:09:55 2009 Yukihiro Matsumoto * lib/delegate.rb (Delegator#freeze): #freeze should freeze self diff --git a/lib/delegate.rb b/lib/delegate.rb index d8a63660a4..da58048f36 100644 --- a/lib/delegate.rb +++ b/lib/delegate.rb @@ -137,7 +137,9 @@ class Delegator target.__send__(m, *args, &block) end rescue Exception - $@.delete_if{|s| %r"\A#{Regexp.quote(__FILE__)}:\d+:in `method_missing'\z"o =~ s} + if i = $@.index{|s| %r"\A#{Regexp.quote(__FILE__)}:\d+:in `method_missing'\z"o =~ s} + $@[0..i] = [] + end ::Kernel::raise end end