@@ -110,14 +110,13 @@ def cookbook(name, *version_and_source_opts)
110110 else
111111 { }
112112 end
113-
114113 constraint = version_and_source_opts . first || ">= 0.0.0"
115114 spec = CookbookLocationSpecification . new ( name , constraint , source_options , storage_config )
116115
117116 if ( existing_source = @cookbook_location_specs [ name ] )
118117 err = "Cookbook '#{ name } ' assigned to conflicting sources\n \n "
119- err << "Previous source: #{ existing_source . source_options . inspect } \n "
120- err << "Conflicts with: #{ source_options . inspect } \n "
118+ err << "Previous source: {" + existing_source . source_options . map { | k , v | " #{ k . inspect } => #{ v . inspect } " } . join ( ", " ) + " }\n "
119+ err << "Conflicts with: {" + source_options . map { | k , v | " #{ k . inspect } => #{ v . inspect } " } . join ( ", " ) + " }\n "
121120 @errors << err
122121 else
123122 @cookbook_location_specs [ name ] = spec
@@ -179,8 +178,11 @@ def eval_policyfile(policyfile_string)
179178 error_message << " #{ error_context ( policyfile_string , policyfile_filename , e ) } \n \n "
180179 unless trace . empty?
181180 error_message << " Backtrace:\n "
181+ normalized_trace = trace . map do |line |
182+ line . gsub ( /:in ['"]?(?:.*[#.]?)?(eval_policyfile)['"]?/ , ":in `\\ 1'" )
183+ end
182184 # TODO: need a way to disable filtering
183- error_message << filtered_bt ( policyfile_filename , e ) . inject ( "" ) { |formatted_trace , line | formatted_trace << " #{ line } \n " }
185+ error_message << normalized_trace . inject ( "" ) { |formatted_trace , line | formatted_trace << " #{ line } \n " }
184186 end
185187 @errors << error_message
186188 end
0 commit comments