diff --git a/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb b/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb index 798c087d64dc5c321f4904b789f20c4f79e9ac3f..9651692952e5d4cfcda21c9f90b4a781d874fba7 100644 --- a/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb +++ b/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb @@ -53,7 +53,7 @@ def render_exception(env, exception) show_source_idx: source_to_show_id, trace_to_show: trace_to_show, routes_inspector: routes_inspector(exception), - source_extract: wrapper.source_extract, + source_extracts: wrapper.source_extracts, line_number: wrapper.line_number, file: wrapper.file ) diff --git a/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb b/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb index b8381aba703b58128f1f5684af3ae1c758cb30b8..49f526d6be4be59d4bda8f3404d352bd3eb41fb1 100644 --- a/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb +++ b/actionpack/lib/action_dispatch/middleware/exception_wrapper.rb @@ -81,13 +81,13 @@ def self.status_code_for_exception(class_name) Rack::Utils.status_code(@@rescue_responses[class_name]) end - def source_extract + def source_extracts backtrace.map do |trace| file, line = trace.split(":") line_number = line.to_i + { code: source_fragment(file, line_number), - file: file, line_number: line_number } end diff --git a/actionpack/lib/action_dispatch/middleware/templates/rescues/_source.erb b/actionpack/lib/action_dispatch/middleware/templates/rescues/_source.erb index 101cea13f949f8c35831baa07b915555b9f9820e..e7b913bbe4845898c23859a2fbff5e2b6df8a74e 100644 --- a/actionpack/lib/action_dispatch/middleware/templates/rescues/_source.erb +++ b/actionpack/lib/action_dispatch/middleware/templates/rescues/_source.erb @@ -1,22 +1,22 @@ -<% @source_extract.each_with_index do |extract_source, index| %> - <% if extract_source[:code] %> +<% @source_extracts.each_with_index do |source_extract, index| %> + <% if source_extract[:code] %>
" id="frame-source-<%=index%>">
- Extracted source (around line #<%= extract_source[:line_number] %>): + Extracted source (around line #<%= source_extract[:line_number] %>):
diff --git a/actionpack/test/dispatch/exception_wrapper_test.rb b/actionpack/test/dispatch/exception_wrapper_test.rb index 57292d319189f5329150d03b72658bb260aaa53b..d7408164ba5a775c9a46cd6fb99e409e26936393 100644 --- a/actionpack/test/dispatch/exception_wrapper_test.rb +++ b/actionpack/test/dispatch/exception_wrapper_test.rb @@ -25,13 +25,13 @@ def backtrace @environment = { 'action_dispatch.backtrace_cleaner' => cleaner } end - test '#source_extract fetches source fragments for every backtrace entry' do + test '#source_extracts fetches source fragments for every backtrace entry' do exception = TestError.new("lib/file.rb:42:in `index'") wrapper = ExceptionWrapper.new({}, exception) wrapper.expects(:source_fragment).with('lib/file.rb', 42).returns('foo') - assert_equal [ code: 'foo', file: 'lib/file.rb', line_number: 42 ], wrapper.source_extract + assert_equal [ code: 'foo', line_number: 42 ], wrapper.source_extracts end
-                <% extract_source[:code].each_key do |line_number| %>
+                <% source_extract[:code].each_key do |line_number| %>
 <%= line_number -%>
                 <% end %>
               
-<% extract_source[:code].each do |line, source| -%>
"><%= source -%>
<% end -%> +<% source_extract[:code].each do |line, source| -%>
"><%= source -%>
<% end -%>