Class: OutputResults
- Inherits:
-
Object
- Object
- OutputResults
- Defined in:
- lib/puppet-check/output_results.rb
Overview
class to handle outputting diagnostic results in desired format
Class Method Summary collapse
-
.category_info(heading, files) ⇒ Object
display heading, files, and file messages per category for text formatting.
-
.run(files, format) ⇒ Object
output the results in various formats.
-
.text(files) ⇒ Object
output the results as text.
Class Method Details
.category_info(heading, files) ⇒ Object
display heading, files, and file messages per category for text formatting
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/puppet-check/output_results.rb', line 43 def self.category_info(heading, files) private_class_method :method # display category heading print heading # display files and optionally messages case files when Hash then files.each { |file, | puts "-- #{file}:\n#{.join("\n")}" } when Array then puts files.join("\n-- ") else raise "puppet-check: The category files were of unexpected type #{files.class}. Please file an issue with this log message, category heading, and information about the parsed files." end # newline between categories for easier visual parsing puts '' end |
.run(files, format) ⇒ Object
output the results in various formats
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/puppet-check/output_results.rb', line 6 def self.run(files, format) # remove empty entries files.delete_if { |_, sorted_files| sorted_files.empty? } # output hash according to specified format case format when 'text' text(files) when 'yaml' require 'yaml' # maintain filename format consistency among output formats files.transform_keys!(&:to_s) puts Psych.dump(files, indentation: 2) when 'json' require 'json' puts JSON.pretty_generate(files) else raise "puppet-check: Unsupported output format '#{format}' was specified." end end |
.text(files) ⇒ Object
output the results as text
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/puppet-check/output_results.rb', line 28 def self.text(files) private_class_method :method # errors category_info("\033[31mThe following files have errors:\033[0m\n", files[:errors]) if files.key?(:errors) # warnings category_info("\033[33mThe following files have warnings:\033[0m\n", files[:warnings]) if files.key?(:warnings) # cleans category_info("\033[32mThe following files have no errors or warnings:\033[0m\n-- ", files[:clean]) if files.key?(:clean) # ignores return unless files.key?(:ignored) category_info("\033[36mThe following files have unrecognized formats and therefore were not processed:\033[0m\n-- ", files[:ignored]) end |