lib/roda/plugins/exception_page.rb in roda-3.33.0 vs lib/roda/plugins/exception_page.rb in roda-3.34.0
- old
+ new
@@ -250,14 +250,24 @@
frame[:function] = $3
begin
lineno -= 1
lines = ::File.readlines(filename)
- pre_lineno = frame[:pre_context_lineno] = [lineno-context, 0].max
- frame[:pre_context] = lines[pre_lineno...lineno]
- frame[:context_line] = lines[lineno].chomp
- post_lineno = frame[:post_context_lineno] = [lineno+context, lines.size].min
- frame[:post_context] = lines[lineno+1..post_lineno]
+ if line = lines[lineno]
+ pre_lineno = [lineno-context, 0].max
+ if (pre_context = lines[pre_lineno...lineno]) && !pre_context.empty?
+ frame[:pre_context_lineno] = pre_lineno
+ frame[:pre_context] = pre_context
+ end
+
+ post_lineno = [lineno+context, lines.size].min
+ if (post_context = lines[lineno+1..post_lineno]) && !post_context.empty?
+ frame[:post_context_lineno] = post_lineno
+ frame[:post_context] = post_context
+ end
+
+ frame[:context_line] = line.chomp
+ end
rescue
end
frame
end