Class: Textus::Action::Pulse
- Extended by:
- Contract::DSL
- Defined in:
- lib/textus/action/pulse.rb,
lib/textus/action/pulse/scanner.rb
Defined Under Namespace
Classes: Scanner
Constant Summary collapse
- BURN =
:sync
Instance Method Summary collapse
- #call(container:, call:) ⇒ Object
-
#initialize(since: nil) ⇒ Pulse
constructor
A new instance of Pulse.
Methods included from Contract::DSL
arg, around, cli, cli_stdin, contract, contract?, summary, surfaces, verb, view
Methods inherited from Base
Constructor Details
#initialize(since: nil) ⇒ Pulse
Returns a new instance of Pulse.
19 20 21 22 |
# File 'lib/textus/action/pulse.rb', line 19 def initialize(since: nil) super() @since = since end |
Instance Method Details
#call(container:, call:) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/textus/action/pulse.rb', line 24 def call(container:, call:) @container = container @call = call @manifest = container.manifest @audit_log = container.audit_log @root = container.root @steps = container.steps freshness_rows = Pulse::Scanner.new.call(container: container, call: call) { "cursor" => @audit_log.latest_seq, "changed" => Textus::Action::Audit.new(seq_since: @since).call(container: container), "stale" => freshness_rows.select { |row| row[:status] == :expired }.map { |row| row[:key] }, "pending_review" => review_keys, "doctor" => doctor_summary, "contract_etag" => Textus::Etag.for_contract(@root), "next_due_at" => soonest_due(freshness_rows), "hook_errors" => hook_errors_since(@since || 0), } end |