Sha256: 906772d8aac154e9f53f36d0a3a7c2ec1bfc5c44fcc529dd8fece5049031b17a

Contents?: true

Size: 1.52 KB

Versions: 37

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true
module Licensed
  module Reporters
    class YamlReporter < Reporter
      # Report all information from the command run to the shell as a YAML object
      #
      # command - The command being run
      # report - A report object containing information about the command run
      def end_report_command(command, report)
        report["apps"] = report.reports.map(&:to_h) if report.reports.any?
        shell.info sanitize(report.to_h).to_yaml
      end

      # Add source report information to the app report hash
      #
      # app - An application configuration
      # report - A report object containing information about the app evaluation
      def end_report_app(app, report)
        report["sources"] = report.reports.map(&:to_h) if report.reports.any?
      end

      # Add dependency report information to the source report hash
      #
      # source - A dependency source enumerator
      # report - A report object containing information about the source evaluation
      def end_report_source(source, report)
        report["dependencies"] = report.reports.map(&:to_h) if report.reports.any?
      end

      def sanitize(object)
        case object
        when String, TrueClass, FalseClass, Numeric
          object
        when Array
          object.compact.map { |item| sanitize(item) }
        when Hash
          object.reject { |_, v| v.nil? }
                .map { |k, v| [k.to_s, sanitize(v)] }
                .to_h
        else
          object.to_s
        end
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
licensed-5.0.3 lib/licensed/reporters/yaml_reporter.rb
licensed-5.0.2 lib/licensed/reporters/yaml_reporter.rb
licensed-5.0.1 lib/licensed/reporters/yaml_reporter.rb
licensed-5.0.0 lib/licensed/reporters/yaml_reporter.rb
licensed-4.5.0 lib/licensed/reporters/yaml_reporter.rb
licensed-4.4.0 lib/licensed/reporters/yaml_reporter.rb
licensed-4.3.1 lib/licensed/reporters/yaml_reporter.rb
licensed-4.3.0 lib/licensed/reporters/yaml_reporter.rb
licensed-4.2.0 lib/licensed/reporters/yaml_reporter.rb
licensed-4.1.0 lib/licensed/reporters/yaml_reporter.rb
licensed-4.0.4 lib/licensed/reporters/yaml_reporter.rb
licensed-4.0.3 lib/licensed/reporters/yaml_reporter.rb
licensed-4.0.2 lib/licensed/reporters/yaml_reporter.rb
licensed-4.0.1 lib/licensed/reporters/yaml_reporter.rb
licensed-4.0.0 lib/licensed/reporters/yaml_reporter.rb
licensed-3.9.1 lib/licensed/reporters/yaml_reporter.rb
licensed-3.9.0 lib/licensed/reporters/yaml_reporter.rb
licensed-3.8.0 lib/licensed/reporters/yaml_reporter.rb
licensed-3.7.5 lib/licensed/reporters/yaml_reporter.rb
licensed-3.7.4 lib/licensed/reporters/yaml_reporter.rb