Module: Igniter::Extensions::Contracts::AuditPack
- Defined in:
- lib/igniter/extensions/contracts/audit_pack.rb
Constant Summary collapse
- REPORT_CONTRIBUTOR =
Module.new do module_function def augment(report:, result:, profile:) # rubocop:disable Lint/UnusedMethodArgument snapshot = AuditPack.snapshot(result) report.add_section(:audit_summary, { graph: snapshot.graph, event_count: snapshot.event_count, event_types: snapshot.event_types, state_count: snapshot.states.length, output_names: snapshot.output_names }) end end
Class Method Summary collapse
- .install_into(kernel) ⇒ Object
- .manifest ⇒ Object
- .report(environment, inputs: nil, compiled_graph: nil, &block) ⇒ Object
- .snapshot(result) ⇒ Object
Class Method Details
.install_into(kernel) ⇒ Object
36 37 38 39 |
# File 'lib/igniter/extensions/contracts/audit_pack.rb', line 36 def install_into(kernel) kernel.diagnostics_contributors.register(:audit_summary, REPORT_CONTRIBUTOR) kernel end |
.manifest ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/igniter/extensions/contracts/audit_pack.rb', line 28 def manifest Igniter::Contracts::PackManifest.new( name: :extensions_audit, registry_contracts: [Igniter::Contracts::PackManifest.diagnostic(:audit_summary)], metadata: { category: :developer } ) end |
.report(environment, inputs: nil, compiled_graph: nil, &block) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/igniter/extensions/contracts/audit_pack.rb', line 45 def report(environment, inputs: nil, compiled_graph: nil, &block) result = if block environment.run(inputs: inputs || {}, &block) elsif compiled_graph environment.execute(compiled_graph, inputs: inputs || {}) else raise ArgumentError, "audit_report requires a block or compiled_graph" end snapshot(result) end |