Class: DurableFlow::WorkflowEvent
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- DurableFlow::WorkflowEvent
- Includes:
- Live::Broadcastable
- Defined in:
- lib/durable_flow/models/workflow_event.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.subset?(expected, actual) ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/durable_flow/models/workflow_event.rb', line 21 def self.subset?(expected, actual) return true if expected.blank? return expected == actual unless expected.is_a?(Hash) return false unless actual.respond_to?(:[]) expected.all? do |key, expected_value| actual_value = if actual.respond_to?(:key?) && actual.key?(key) actual[key] elsif actual.respond_to?(:key?) && actual.key?(key.to_s) actual[key.to_s] elsif actual.respond_to?(:key?) && actual.key?(key.to_sym) actual[key.to_sym] else actual[key] end subset?(expected_value, actual_value) end end |
Instance Method Details
#live_snapshot ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/durable_flow/models/workflow_event.rb', line 41 def live_snapshot { id: id, name: name, payload: payload, tags: , context: context, source_location: source_location, occurred_at: occurred_at, created_at: created_at, updated_at: updated_at, } end |
#matches_payload?(expected) ⇒ Boolean
17 18 19 |
# File 'lib/durable_flow/models/workflow_event.rb', line 17 def matches_payload?(expected) self.class.subset?(expected || {}, payload_value) end |
#payload_value ⇒ Object
13 14 15 |
# File 'lib/durable_flow/models/workflow_event.rb', line 13 def payload_value Serializer.load(payload) end |