Class: OutputResults
- Inherits:
-
Object
- Object
- OutputResults
- Defined in:
- lib/puppet-check/output_results.rb
Overview
class to handle outputting diagnostic results in desired format
Constant Summary collapse
- HEADER =
{ errors: "\033[31mThe following files have errors:\033[0m\n", warnings: "\033[33mThe following files have warnings:\033[0m\n", clean: "\033[32mThe following files have no errors or warnings:\033[0m\n-- ", ignored: "\033[36mThe following files have unrecognized formats and therefore were not processed:\033[0m\n-- " }.freeze
Class Method Summary collapse
-
.run(files, format) ⇒ Object
output the results in various formats.
-
.text(files) ⇒ Object
output the results as text.
Class Method Details
.run(files, format) ⇒ Object
output the results in various formats
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/puppet-check/output_results.rb', line 13 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
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/puppet-check/output_results.rb', line 35 def self.text(files) private_class_method :method # output text for each of four file categories %i[errors warnings clean ignored].each do |category| # immediately return if category is empty next unless files.key?(category) # display heading, files, and file messages per category for text formatting category_files = files[category] # display category heading print HEADER[category] # display files and optionally messages case category_files when Hash then category_files.each { |file, | puts "-- #{file}:\n#{.join("\n")}" } when Array then puts category_files.join("\n-- ") else raise "puppet-check: The files category was of unexpected type #{category_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 end |