def report!
report = {}
report[:total] = @collection.size
report[:touched] = @collection.count { |_, resource| resource.touched? }
report[:untouched] = report[:total] - report[:touched]
report[:coverage] = sprintf("%5.2f", ((report[:touched].to_f/report[:total].to_f)*100))
report[:detailed] = Hash[*@collection.map do |name, wrapper|
[name, wrapper.to_hash]
end.flatten]
puts "\nTotal resources: \#{report[:total]}\nTouched resources: \#{report[:touched]}\nResource coverage: \#{report[:coverage]}%\n".gsub(/^ {8}/, '')
if report[:coverage] != "100.00"
puts "Untouched resources:\n\n\#{\nuntouched_resources = report[:detailed].reject do |_,rsrc|\nrsrc[\"touched\"]\nend\nuntouched_resources.inject([]) do |memo, (name,_)|\nmemo << \" \#{name}\"\nend.sort.join(\"\\n\")\n}\n".gsub(/^ {10}/, '')
end
end