Class: Smith::Workflow::SplitStepPersistence::TransitionContract

Inherits:
Object
  • Object
show all
Extended by:
Dry::Initializer
Defined in:
lib/smith/workflow/split_step_persistence/transition_contract.rb

Constant Summary collapse

MAX_DEPTH =
128
MAX_NODES =
10_000
MAX_BYTES =
4 * 1024 * 1024

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.capture(transition) ⇒ Object



17
# File 'lib/smith/workflow/split_step_persistence/transition_contract.rb', line 17

def self.capture(transition) = new(transition).capture

.signature(transition) ⇒ Object



18
# File 'lib/smith/workflow/split_step_persistence/transition_contract.rb', line 18

def self.signature(transition) = new(transition).signature

Instance Method Details

#captureObject



20
21
22
23
24
25
# File 'lib/smith/workflow/split_step_persistence/transition_contract.rb', line 20

def capture
  captured = signature
  freeze_value(transition)
  freeze_value(captured)
  captured
end

#signatureObject



27
28
29
30
31
32
33
34
# File 'lib/smith/workflow/split_step_persistence/transition_contract.rb', line 27

def signature
  TransitionContractSignature.new(
    value: transition,
    max_depth: MAX_DEPTH,
    max_nodes: MAX_NODES,
    max_bytes: MAX_BYTES
  ).call
end