aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorBoris Kuznetsov <achempion@gmail.com>2014-01-30 18:33:49 +0400
committerBoris Kuznetsov <achempion@gmail.com>2014-03-27 00:36:59 +0400
commit6af07c27ae65dfaf0d42a2741544915459efe67a (patch)
treeb4abd71302226ec54606caa19aba2f92455674db /actionpack/lib
parent9ed0cf51b467907810ef3959c8e9cdf77370370e (diff)
downloadrails-6af07c27ae65dfaf0d42a2741544915459efe67a.tar.gz
rails-6af07c27ae65dfaf0d42a2741544915459efe67a.tar.bz2
rails-6af07c27ae65dfaf0d42a2741544915459efe67a.zip
Append link to bad code to backtrace when exception is SyntaxError
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/middleware/exception_wrapper.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb b/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb
index 377f05c982..2326bb043a 100644
--- a/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb
+++ b/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb
@@ -32,6 +32,8 @@ module ActionDispatch
def initialize(env, exception)
@env = env
@exception = original_exception(exception)
+
+ expand_backtrace if exception.is_a?(SyntaxError) || exception.try(:original_exception).try(:is_a?, SyntaxError)
end
def rescue_template
@@ -104,5 +106,11 @@ module ActionDispatch
end
end
end
+
+ def expand_backtrace
+ @exception.backtrace.unshift(
+ @exception.to_s.split("\n")
+ ).flatten!
+ end
end
end