Class: OutputResults

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet-check/output_results.rb

Overview

class to handle outputting diagnostic results in desired format

Class Method Summary collapse

Class Method Details

.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
41
42
43
44
45
46
47
48
49
50
# File 'lib/puppet-check/output_results.rb', line 28

def self.text(files)
  private_class_method :method

  # errors
  if files.key?(:errors)
    puts "\033[31mThe following files have errors:\033[0m"
    files[:errors].each { |file, errors| puts "-- #{file}:\n#{errors.join("\n")}" }
  end
  # warnings
  if files.key?(:warnings)
    puts "\n\033[33mThe following files have warnings:\033[0m"
    files[:warnings].each { |file, warnings| puts "-- #{file}:\n#{warnings.join("\n")}" }
  end
  # cleans
  if files.key?(:clean)
    print "\n\033[32mThe following files have no errors or warnings:\033[0m\n-- "
    puts files[:clean].join("\n-- ")
  end
  # ignores
  return unless files.key?(:ignored)
  print "\n\033[36mThe following files have unrecognized formats and therefore were not processed:\033[0m\n-- "
  puts files[:ignored].join("\n-- ")
end