Sha256: adf2208070f5a453faa4f5b7e20f7fdb1b8845c229503d7a3153b4d5118f2065

Contents?: true

Size: 1.7 KB

Versions: 1

Compression:

Stored size: 1.7 KB

Contents

require_relative '../puppet-check'

# class to handle outputting diagnostic results in desired format
class OutputResults
  # output the results as text
  def self.text
    unless PuppetCheck.error_files.empty?
      print "\033[31mThe following files have errors:\033[0m\n-- "
      puts PuppetCheck.error_files.join("\n\n-- ")
    end
    unless PuppetCheck.warning_files.empty?
      print "\n\033[33mThe following files have warnings:\033[0m\n-- "
      puts PuppetCheck.warning_files.join("\n\n-- ")
    end
    unless PuppetCheck.clean_files.empty?
      print "\n\033[32mThe following files have no errors or warnings:\033[0m\n-- "
      puts PuppetCheck.clean_files.join("\n-- ")
    end
    unless PuppetCheck.ignored_files.empty?
      print "\n\033[36mThe following files have unrecognized formats and therefore were not processed:\033[0m\n-- "
      puts PuppetCheck.ignored_files.join("\n-- ")
    end
  end

  # output the results as yaml or json
  def self.markup
    require 'yaml'
    require 'json'

    # generate output hash
    hash = {}
    hash['errors'] = PuppetCheck.error_files unless PuppetCheck.error_files.empty?
    hash['warnings'] = PuppetCheck.warning_files unless PuppetCheck.warning_files.empty?
    hash['clean'] = PuppetCheck.clean_files unless PuppetCheck.clean_files.empty?
    hash['ignored'] = PuppetCheck.ignored_files unless PuppetCheck.ignored_files.empty?

    # convert hash to markup language
    if PuppetCheck.output_format == 'yaml'
      puts Psych.dump(hash, indentation: 2)
    elsif PuppetCheck.output_format == 'json'
      puts JSON.pretty_generate(hash)
    else
      raise "puppet-check: Unsupported output format '#{PuppetCheck.output_format}' was specified."
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puppet-check-1.3.0 lib/puppet-check/output_results.rb