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