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