Class: Mammoth::PreparedDelivery
- Inherits:
-
Data
- Object
- Data
- Mammoth::PreparedDelivery
- Defined in:
- lib/mammoth/prepared_delivery.rb
Overview
Immutable delivery boundary containing canonical identity and outbound data.
Instance Attribute Summary collapse
-
#canonical_payload ⇒ Object
readonly
Returns the value of attribute canonical_payload.
-
#payload ⇒ Object
readonly
Returns the value of attribute payload.
-
#policy_fingerprint ⇒ Object
readonly
Returns the value of attribute policy_fingerprint.
Class Method Summary collapse
-
.build(work, serializer:, payload_policy:) ⇒ Mammoth::PreparedDelivery
Serialize and apply one destination payload policy.
-
.from_payload(payload) ⇒ Mammoth::PreparedDelivery
Reconstruct a prepared delivery from a persisted destination payload.
Instance Attribute Details
#canonical_payload ⇒ Object (readonly)
Returns the value of attribute canonical_payload
5 6 7 |
# File 'lib/mammoth/prepared_delivery.rb', line 5 def canonical_payload @canonical_payload end |
#payload ⇒ Object (readonly)
Returns the value of attribute payload
5 6 7 |
# File 'lib/mammoth/prepared_delivery.rb', line 5 def payload @payload end |
#policy_fingerprint ⇒ Object (readonly)
Returns the value of attribute policy_fingerprint
5 6 7 |
# File 'lib/mammoth/prepared_delivery.rb', line 5 def policy_fingerprint @policy_fingerprint end |
Class Method Details
.build(work, serializer:, payload_policy:) ⇒ Mammoth::PreparedDelivery
Serialize and apply one destination payload policy.
12 13 14 15 16 17 18 19 |
# File 'lib/mammoth/prepared_delivery.rb', line 12 def self.build(work, serializer:, payload_policy:) canonical_payload = serializer.call(work) new( canonical_payload: canonical_payload, payload: payload_policy.apply(canonical_payload), policy_fingerprint: payload_policy.fingerprint ) end |
.from_payload(payload) ⇒ Mammoth::PreparedDelivery
Reconstruct a prepared delivery from a persisted destination payload.
25 26 27 28 |
# File 'lib/mammoth/prepared_delivery.rb', line 25 def self.from_payload(payload) fingerprint = payload.dig("metadata", PayloadPolicy::POLICY_METADATA_KEY, "fingerprint") new(canonical_payload: payload, payload: payload, policy_fingerprint: fingerprint) end |