Use `set_backtrace` instead of `@backtrace` in ActionView error
This commit is contained in:
parent
314e2cc05b
commit
1e848906c5
|
@ -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`
|
* Fix `simple_format` escapes own output when passing `sanitize: true`
|
||||||
|
|
||||||
*Paul Seidemann*
|
*Paul Seidemann*
|
||||||
|
|
|
@ -56,13 +56,13 @@ module ActionView
|
||||||
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 @@ class TemplateErrorTest < ActiveSupport::TestCase
|
||||||
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
|
||||||
|
|
Loading…
Reference in New Issue