summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel DeLeo <dan@opscode.com>2012-06-22 17:07:08 -0700
committerDaniel DeLeo <dan@opscode.com>2012-06-22 17:07:08 -0700
commit8f7ba3dddb9cb01c129a81e4a57ab5db806e6867 (patch)
treec3aeee815510be28c3e0440b3b8f7138b7aa766d
parentcdc0eaca9e9bbe399a51982d7583cb1bb44096c6 (diff)
downloadchef-8f7ba3dddb9cb01c129a81e4a57ab5db806e6867.tar.gz
update compile error inspector to work correctly with include_recipe
-rw-r--r--chef/lib/chef/formatters/error_inspectors/compile_error_inspector.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/chef/lib/chef/formatters/error_inspectors/compile_error_inspector.rb b/chef/lib/chef/formatters/error_inspectors/compile_error_inspector.rb
index ada6be4b7e..e892217d84 100644
--- a/chef/lib/chef/formatters/error_inspectors/compile_error_inspector.rb
+++ b/chef/lib/chef/formatters/error_inspectors/compile_error_inspector.rb
@@ -42,13 +42,13 @@ class Chef
def context
context_lines = []
- context_lines << "#{path}:"
+ context_lines << "#{culprit_file}:\n\n"
Range.new(display_lower_bound, display_upper_bound).each do |i|
line_nr = (i + 1).to_s.rjust(3)
indicator = (i + 1) == culprit_line ? ">> " : ": "
context_lines << "#{line_nr}#{indicator}#{file_lines[i]}"
end
- context_lines.join("\n")
+ context_lines.join("")
end
def display_lower_bound
@@ -64,15 +64,19 @@ class Chef
end
def file_lines
- @file_lines ||= IO.readlines(path)
+ @file_lines ||= IO.readlines(culprit_file)
end
def culprit_backtrace_entry
- @culprit_backtrace_entry ||= exception.backtrace.find {|line| line =~ /^#{@path}/ }
+ @culprit_backtrace_entry ||= filtered_bt.first
end
def culprit_line
- @culprit_line ||= culprit_backtrace_entry[/^#{@path}:([\d]+)/,1].to_i
+ @culprit_line ||= culprit_backtrace_entry[/^[^:]+:([\d]+)/,1].to_i
+ end
+
+ def culprit_file
+ @culprit_file ||= culprit_backtrace_entry[/^([^:]+):([\d]+)/,1]
end
def filtered_bt