Class: Igniter::Contracts::Contractable::Result

Inherits:
Struct
  • Object
show all
Defined in:
lib/igniter/contracts/contractable.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:, outputs: {}, observations: [], error: nil, metadata: {}) ⇒ Result

Returns a new instance of Result.



22
23
24
25
26
27
28
29
30
31
# File 'lib/igniter/contracts/contractable.rb', line 22

def initialize(status:, outputs: {}, observations: [], error: nil, metadata: {})
  super(
    status: status.to_sym,
    outputs: outputs.transform_keys(&:to_sym).freeze,
    observations: observations.map { |observation| normalize_observation(observation) }.freeze,
    error: error,
    metadata: .dup.freeze
  )
  freeze
end

Instance Attribute Details

#errorObject

Returns the value of attribute error

Returns:

  • (Object)

    the current value of error



21
22
23
# File 'lib/igniter/contracts/contractable.rb', line 21

def error
  @error
end

#metadataObject

Returns the value of attribute metadata

Returns:

  • (Object)

    the current value of metadata



21
22
23
# File 'lib/igniter/contracts/contractable.rb', line 21

def 
  @metadata
end

#observationsObject

Returns the value of attribute observations

Returns:

  • (Object)

    the current value of observations



21
22
23
# File 'lib/igniter/contracts/contractable.rb', line 21

def observations
  @observations
end

#outputsObject

Returns the value of attribute outputs

Returns:

  • (Object)

    the current value of outputs



21
22
23
# File 'lib/igniter/contracts/contractable.rb', line 21

def outputs
  @outputs
end

#statusObject

Returns the value of attribute status

Returns:

  • (Object)

    the current value of status



21
22
23
# File 'lib/igniter/contracts/contractable.rb', line 21

def status
  @status
end

Instance Method Details

#failure?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/igniter/contracts/contractable.rb', line 37

def failure?
  !success?
end

#success?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/igniter/contracts/contractable.rb', line 33

def success?
  status == :success
end

#to_hObject



41
42
43
44
45
46
47
48
49
50
# File 'lib/igniter/contracts/contractable.rb', line 41

def to_h
  {
    status: status,
    success: success?,
    outputs: outputs,
    observations: observations.map(&:to_h),
    error: error,
    metadata: .dup
  }.compact
end