diff options
author | Daniel DeLeo <dan@opscode.com> | 2012-06-22 17:07:08 -0700 |
---|---|---|
committer | Daniel DeLeo <dan@opscode.com> | 2012-06-22 17:07:08 -0700 |
commit | 8f7ba3dddb9cb01c129a81e4a57ab5db806e6867 (patch) | |
tree | c3aeee815510be28c3e0440b3b8f7138b7aa766d | |
parent | cdc0eaca9e9bbe399a51982d7583cb1bb44096c6 (diff) | |
download | chef-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.rb | 14 |
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 |