Exception: Linearly::Errors::BrokenContract Abstract

Inherits:
RuntimeError
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/linearly/errors/broken_contract.rb

Overview

This class is abstract.

BrokenContract is what happens when inputs or outputs for a Step do not match expectations.

Direct Known Subclasses

Inputs, Outputs

Defined Under Namespace

Classes: Inputs, Outputs

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, failures) ⇒ BrokenContract

Constructor for a Linearly::Errors::BrokenContract error

Examples:

Linearly::Errors::BrokenContract::Inputs.new(
  Steps::HelloWorld,
  key: Linearly::Validation::Failure::Missing.instance,
)
=> #<Linearly::Errors::BrokenContract::Inputs:
     failed input expectations on Steps::HelloWorld: [key]>

Parameters:



50
51
52
53
54
# File 'lib/linearly/errors/broken_contract.rb', line 50

def initialize(source, failures)
  @source = source
  @failures = failures
  super("#{copy} on #{source_string}: [#{keys.join(', ')}]")
end

Instance Attribute Details

#failuresHash<Symbol, Validation::Failure> (readonly)

Input/output validation failures

Examples:

err = Linearly::Errors::Inputs.new(
  key: Linearly::Validation::Failure::Missing.instance,
)
err.failures
=> {:key => [missing]}

Returns:



23
24
25
# File 'lib/linearly/errors/broken_contract.rb', line 23

def failures
  @failures
end

Instance Method Details

#keysArray<Symbol>

Examples:

err = Linearly::Errors::BrokenContract::Inputs.new(
  key: Linearly::Validation::Failure::Missing.instance,
)
err.keys
=> [:key]

Returns:

  • (Array<Symbol>)

See Also:



35
# File 'lib/linearly/errors/broken_contract.rb', line 35

def_delegators :failures, :keys