diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/delegate.rb | 4 |
2 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Fri Oct 16 20:18:28 2009 Yukihiro Matsumoto <matz@ruby-lang.org> + + * lib/delegate.rb (Delegator#method_missing): remove backtrace + lines _until_ `method_missing'. + Fri Oct 16 20:09:55 2009 Yukihiro Matsumoto <matz@ruby-lang.org> * 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 |