From ed5f52a39e516eba0a740f3d9e6d5d039fb8bb45 Mon Sep 17 00:00:00 2001 From: Aleksei Gusev Date: Sun, 18 Jul 2010 16:05:46 +0300 Subject: [PATCH] fixed set_backtrace method in ActionView::Template::Error in possibility change backtrace for backtrace silencers like one in Cucumber. --- actionpack/lib/action_view/template/error.rb | 4 ++-- actionpack/test/template/error_test.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 actionpack/test/template/error_test.rb diff --git a/actionpack/lib/action_view/template/error.rb b/actionpack/lib/action_view/template/error.rb index b1839b6..fa1a240 100644 --- a/actionpack/lib/action_view/template/error.rb +++ b/actionpack/lib/action_view/template/error.rb @@ -48,11 +48,11 @@ module ActionView class Error < ActionViewError #:nodoc: SOURCE_CODE_RADIUS = 3 - attr_reader :original_exception, :backtrace + attr_reader :original_exception + delegate :backtrace, :set_backtrace, :to => :original_exception def initialize(template, assigns, original_exception) @template, @assigns, @original_exception = template, assigns.dup, original_exception - @backtrace = original_exception.backtrace end def file_name diff --git a/actionpack/test/template/error_test.rb b/actionpack/test/template/error_test.rb new file mode 100644 index 0000000..b852f1d --- /dev/null +++ b/actionpack/test/template/error_test.rb @@ -0,0 +1,12 @@ +require 'abstract_unit' + +class TemplateErrorTest < ActionView::TestCase + def test_set_backtrace + base = Exception.new + base.set_backtrace [ "1", "2" ] + @exception = ActionView::Template::Error.new(nil, [], base) + assert_difference '@exception.backtrace.size' do + @exception.set_backtrace(@exception.backtrace + ["3"]) + end + end +end -- 1.7.0.4