aboutsummaryrefslogtreecommitdiffstats
path: root/actionview
diff options
context:
space:
mode:
authorShimpei Makimoto <makimoto@tsuyabu.in>2013-10-31 00:48:09 +0900
committerShimpei Makimoto <makimoto@tsuyabu.in>2013-11-16 04:41:28 +0900
commit1e848906c594d159da376dc1f41c7869c1f2249e (patch)
tree64df8725a2740e291468dea6ecb7c0943b56b520 /actionview
parent314e2cc05b6cad93b6e8a3414b2c0106174239be (diff)
downloadrails-1e848906c594d159da376dc1f41c7869c1f2249e.tar.gz
rails-1e848906c594d159da376dc1f41c7869c1f2249e.tar.bz2
rails-1e848906c594d159da376dc1f41c7869c1f2249e.zip
Use `set_backtrace` instead of `@backtrace` in ActionView error
Diffstat (limited to 'actionview')
-rw-r--r--actionview/CHANGELOG.md4
-rw-r--r--actionview/lib/action_view/template/error.rb4
-rw-r--r--actionview/test/template/template_error_test.rb7
3 files changed, 13 insertions, 2 deletions
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md
index 9eb68db101..787e6d68be 100644
--- a/actionview/CHANGELOG.md
+++ b/actionview/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Use `set_backtrace` instead of instance variable `@backtrace` in ActionView exceptions
+
+ *Shimpei Makimoto*
+
* Fix `simple_format` escapes own output when passing `sanitize: true`
*Paul Seidemann*
diff --git a/actionview/lib/action_view/template/error.rb b/actionview/lib/action_view/template/error.rb
index a89d51221e..7b4b5e13e0 100644
--- a/actionview/lib/action_view/template/error.rb
+++ b/actionview/lib/action_view/template/error.rb
@@ -56,13 +56,13 @@ module ActionView
class Error < ActionViewError #:nodoc:
SOURCE_CODE_RADIUS = 3
- attr_reader :original_exception, :backtrace
+ attr_reader :original_exception
def initialize(template, original_exception)
super(original_exception.message)
@template, @original_exception = template, original_exception
@sub_templates = nil
- @backtrace = original_exception.backtrace
+ set_backtrace(original_exception.backtrace)
end
def file_name
diff --git a/actionview/test/template/template_error_test.rb b/actionview/test/template/template_error_test.rb
index 91424daeed..3971ec809c 100644
--- a/actionview/test/template/template_error_test.rb
+++ b/actionview/test/template/template_error_test.rb
@@ -6,6 +6,13 @@ class TemplateErrorTest < ActiveSupport::TestCase
assert_equal "original", error.message
end
+ def test_provides_original_backtrace
+ original_exception = Exception.new
+ original_exception.set_backtrace(%W[ foo bar baz ])
+ error = ActionView::Template::Error.new("test", original_exception)
+ assert_equal %W[ foo bar baz ], error.backtrace
+ end
+
def test_provides_useful_inspect
error = ActionView::Template::Error.new("test", Exception.new("original"))
assert_equal "#<ActionView::Template::Error: original>", error.inspect