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