Class: Licensed::Reporters::Reporter
- Inherits:
-
Object
- Object
- Licensed::Reporters::Reporter
- Defined in:
- lib/licensed/reporters/reporter.rb
Direct Known Subclasses
CacheReporter, JsonReporter, ListReporter, NoticesReporter, StatusReporter, YamlReporter
Defined Under Namespace
Classes: Report, ReportingError
Instance Method Summary collapse
-
#initialize(shell = Licensed::UI::Shell.new) ⇒ Reporter
constructor
A new instance of Reporter.
-
#report_app(app) ⇒ Object
Generate a report for a licensed app configuration Yields a report object which can be used to view or add data generated for this app.
-
#report_dependency(dependency) {|dependency_report| ... } ⇒ Object
Generate a report for a licensed dependency Yields a report object which can be used to view or add data generated for this dependency.
-
#report_run(command) ⇒ Object
Generate a report for a licensed command execution Yields a report object which can be used to view or add data generated for this run.
-
#report_source(source) ⇒ Object
Generate a report for a licensed dependency source enumerator Yields a report object which can be used to view or add data generated for this dependency source.
Constructor Details
Instance Method Details
#report_app(app) ⇒ Object
Generate a report for a licensed app configuration Yields a report object which can be used to view or add data generated for this app
app - An application configuration
Returns the result of the yielded method Note - must be called from inside the ‘report_run` scope
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/licensed/reporters/reporter.rb', line 80 def report_app(app) raise ReportingError.new("Cannot call report_app with active app context") unless @app_report.nil? raise ReportingError.new("Call report_run before report_app") if @run_report.nil? result = nil @app_report = Report.new(name: app["name"], target: app) begin result = yield @app_report ensure @run_report.reports << @app_report @app_report = nil end result end |
#report_dependency(dependency) {|dependency_report| ... } ⇒ Object
Generate a report for a licensed dependency Yields a report object which can be used to view or add data generated for this dependency
dependency - An application dependency
Returns the result of the yielded method Note - must be called from inside the ‘report_source` scope
126 127 128 129 130 131 132 |
# File 'lib/licensed/reporters/reporter.rb', line 126 def report_dependency(dependency) raise ReportingError.new("Call report_source before report_dependency") if @source_report.nil? dependency_report = Report.new(name: [@source_report.name, dependency.name].join("."), target: dependency) @source_report.reports << dependency_report yield dependency_report end |
#report_run(command) ⇒ Object
Generate a report for a licensed command execution Yields a report object which can be used to view or add data generated for this run
Returns the result of the yielded method
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/licensed/reporters/reporter.rb', line 60 def report_run(command) result = nil @run_report = Report.new(name: nil, target: command) begin result = yield @run_report ensure @run_report = nil end result end |
#report_source(source) ⇒ Object
Generate a report for a licensed dependency source enumerator Yields a report object which can be used to view or add data generated for this dependency source
source - A dependency source enumerator
Returns the result of the yielded method Note - must be called from inside the ‘report_app` scope
103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/licensed/reporters/reporter.rb', line 103 def report_source(source) raise ReportingError.new("Cannot call report_source with active source context") unless @source_report.nil? raise ReportingError.new("Call report_app before report_source") if @app_report.nil? result = nil @source_report = Report.new(name: [@app_report.name, source.class.type].join("."), target: source) begin result = yield @source_report ensure @app_report.reports << @source_report @source_report = nil end result end |