diff options
-rw-r--r-- | lib/chef/formatters/error_inspectors/resource_failure_inspector.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb b/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb index eeff5f10d2..6e4d9322f9 100644 --- a/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +++ b/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb @@ -63,7 +63,7 @@ class Chef def recipe_snippet return nil if dynamic_resource? @snippet ||= begin - if file = resource.source_line[/^(([\w]:)?[^:]+):([\d]+)/,1] and line = resource.source_line[/^#{Regexp.escape(file)}:([\d]+)/,1].to_i + if file = parse_source and line = parse_line(file) return nil unless ::File.exists?(file) lines = IO.readlines(file) @@ -111,6 +111,16 @@ class Chef line_nr_string + line end + def parse_source + resource.source_line[/^(([\w]:)?[^:]+):([\d]+)/,1] + end + + def parse_line(source) + resource.source_line[/^#{Regexp.escape(source)}:([\d]+)/,1].to_i + end + + + end end end |