18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/lookbook/error.rb', line 18
def source_code
lines = source_code_lines
if lines.present? && line_number.is_a?(Integer)
start_line = source_code_start_line(lines)
end_line = source_code_end_line(lines)
highlighted_line = source_code_highlighted_line(lines)
line_count = end_line - start_line
relevant_lines = lines.slice(start_line - 1, line_count + 1)
if relevant_lines.present?
empty_start_lines = 0
relevant_lines.each do |line|
break unless line.strip.empty?
empty_start_lines += 1
end
{
code: relevant_lines.join("\n").lstrip,
start_line: start_line,
highlighted_line: highlighted_line - empty_start_lines
}
end
end
end
|