lib/puppet-doc-lint/result.rb in puppet-doc-lint-0.0.1 vs lib/puppet-doc-lint/result.rb in puppet-doc-lint-0.1.0

- old
+ new

@@ -1,23 +1,47 @@ require 'virtus' +class Numeric + def percent_of(n) + self.to_f / n.to_f * 100.0 + end +end + class PuppetDocLint class Result include Virtus.model attribute :class_name, String attribute :file_name, String attribute :parameters, String attribute :no_documentation, Boolean, :default => false attribute :documented_parameters, String, :default => [] attribute :undocumented_parameters, String, :default => [] + attribute :documented_parameter_no_assignment, String, :default => [] + attribute :authors, String, :default => [] def result_report - puts "Class name was: #{class_name}" - puts "File name #{file_name}" + puts "====================================" + puts "Class #{class_name} ( #{file_name} )".bg_blue puts "Parameters found #{parameters}" - puts "No documentation error: #{no_documentation}" - puts "Documented parameters found: #{documented_parameters}" - puts "Undocumented parameters found: #{undocumented_parameters}\n\n" + if no_documentation + puts "No documentation found." + puts "If there is documentation, this may be a bug with the Puppet parser" + puts "Puppet files with newer features such as the use of hashes can cause this\n\n" + else + puts "Documented parameters found: #{documented_parameters}".green + puts "Undocumented parameters found: #{undocumented_parameters}".red + puts "Parameters with Documentation but no defintion: #{documented_parameter_no_assignment}".red unless documented_parameter_no_assignment.empty? + puts "Documentation Coverage: #{percent_documented}%" + puts "Authors: #{authors}" unless authors.empty? + end + end + + def percent_documented + if documented_parameters.size == 0 + 100 + else + documented_parameters.size.percent_of(parameters.size).round(2) + end end end #class Result end #module PuppetDocLint