提交 dd184e4b 编写于 作者: R Rafael Mendonça França

Merge pull request #12703 from makimoto/actionsupport-error-set_backtrace

Use set_backtrace instead of @backtrace in ActionView error
* Use `set_backtrace` instead of instance variable `@backtrace` in ActionView exceptions
*Shimpei Makimoto*
* Fix `simple_format` escapes own output when passing `sanitize: true` * Fix `simple_format` escapes own output when passing `sanitize: true`
*Paul Seidemann* *Paul Seidemann*
......
...@@ -56,13 +56,13 @@ class Template ...@@ -56,13 +56,13 @@ class Template
class Error < ActionViewError #:nodoc: class Error < ActionViewError #:nodoc:
SOURCE_CODE_RADIUS = 3 SOURCE_CODE_RADIUS = 3
attr_reader :original_exception, :backtrace attr_reader :original_exception
def initialize(template, original_exception) def initialize(template, original_exception)
super(original_exception.message) super(original_exception.message)
@template, @original_exception = template, original_exception @template, @original_exception = template, original_exception
@sub_templates = nil @sub_templates = nil
@backtrace = original_exception.backtrace set_backtrace(original_exception.backtrace)
end end
def file_name def file_name
......
...@@ -6,6 +6,13 @@ def test_provides_original_message ...@@ -6,6 +6,13 @@ def test_provides_original_message
assert_equal "original", error.message assert_equal "original", error.message
end 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 def test_provides_useful_inspect
error = ActionView::Template::Error.new("test", Exception.new("original")) error = ActionView::Template::Error.new("test", Exception.new("original"))
assert_equal "#<ActionView::Template::Error: original>", error.inspect assert_equal "#<ActionView::Template::Error: original>", error.inspect
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册