Class: Licensed::Reporters::CacheReporter

Inherits:
Reporter
  • Object
show all
Defined in:
lib/licensed/reporters/cache_reporter.rb

Instance Method Summary collapse

Methods inherited from Reporter

#initialize, #report_run

Constructor Details

This class inherits a constructor from Licensed::Reporters::Reporter

Instance Method Details

#report_app(app) ⇒ Object

Reports on an application configuration in a cache command run

app - An application configuration

Returns the result of the yielded method Note - must be called from inside the ‘report_run` scope



11
12
13
14
15
16
# File 'lib/licensed/reporters/cache_reporter.rb', line 11

def report_app(app)
  super do |report|
    shell.info "Caching dependency records for #{app["name"]}"
    yield report
  end
end

#report_dependency(dependency) ⇒ Object

Reports on a dependency in a cache command run. Shows whether the dependency’s record was cached or reused.

dependency - An application dependency

Returns the result of the yielded method Note - must be called from inside the ‘report_run` scope



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/licensed/reporters/cache_reporter.rb', line 59

def report_dependency(dependency)
  super do |report|
    result = yield report

    if report.errors.any?
      shell.error "    Error #{dependency.name} (#{dependency.version})"
    elsif report["cached"]
      shell.info "    Caching #{dependency.name} (#{dependency.version})"
    else
      shell.info "    Using #{dependency.name} (#{dependency.version})"
    end

    result
  end
end

#report_source(source) ⇒ Object

Reports on a dependency source enumerator in a cache command run. Shows the type and count of dependencies found by the source.

source - A dependency source enumerator

Returns the result of the yielded method Note - must be called from inside the ‘report_run` scope



25
26
27
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/licensed/reporters/cache_reporter.rb', line 25

def report_source(source)
  super do |report|
    shell.info "  #{source.class.type}"
    result = yield report

    errored_reports = report.all_reports.select { |report| report.errors.any? }.to_a
    if errored_reports.any?
      shell.newline
      shell.error "  * Errors:"
      errored_reports.each do |report|
         = report.map { |k, v| "#{k}: #{v}" }.join(", ")

        shell.error "    * #{report.name}"
        shell.error "    #{}" unless .empty?
        report.errors.each do |error|
          shell.error "      - #{error}"
        end
        shell.newline
      end
    else
      shell.confirm "  * #{report.reports.size} #{source.class.type} dependencies"
    end

    result
  end
end