Class: Igniter::Contracts::Execution::StepResult

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/contracts/execution/step_result.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value:, failure:, metadata: {}) ⇒ StepResult

Returns a new instance of StepResult.



25
26
27
28
29
30
# File 'lib/igniter/contracts/execution/step_result.rb', line 25

def initialize(value:, failure:, metadata: {})
  @value = value
  @failure = failure&.transform_keys(&:to_sym)
  @metadata = .transform_keys(&:to_sym).freeze
  freeze
end

Instance Attribute Details

#failureObject (readonly)

Returns the value of attribute failure.



7
8
9
# File 'lib/igniter/contracts/execution/step_result.rb', line 7

def failure
  @failure
end

#metadataObject (readonly)

Returns the value of attribute metadata.



7
8
9
# File 'lib/igniter/contracts/execution/step_result.rb', line 7

def 
  @metadata
end

#valueObject (readonly)

Returns the value of attribute value.



7
8
9
# File 'lib/igniter/contracts/execution/step_result.rb', line 7

def value
  @value
end

Class Method Details

.failure(code:, message:, details: {}, metadata: {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/igniter/contracts/execution/step_result.rb', line 13

def self.failure(code:, message:, details: {}, metadata: {})
  new(
    value: nil,
    failure: {
      code: code.to_sym,
      message: message,
      details: details
    },
    metadata: 
  )
end

.success(value, metadata: {}) ⇒ Object



9
10
11
# File 'lib/igniter/contracts/execution/step_result.rb', line 9

def self.success(value, metadata: {})
  new(value: value, failure: nil, metadata: )
end

Instance Method Details

#failure?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/igniter/contracts/execution/step_result.rb', line 36

def failure?
  !success?
end

#success?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/igniter/contracts/execution/step_result.rb', line 32

def success?
  failure.nil?
end

#to_hObject



40
41
42
43
44
45
46
47
# File 'lib/igniter/contracts/execution/step_result.rb', line 40

def to_h
  {
    success: success?,
    value: StructuredDump.dump(value),
    failure: StructuredDump.dump(failure),
    metadata: StructuredDump.dump()
  }
end