Module: Flows::Plugin::OutputContract::DSL

Includes:
Util::InheritableSingletonVars::DupStrategy.make_module( '@success_contracts' => {}, '@failure_contracts' => {}, '@skip_output_contract_flag' => false )
Defined in:
lib/flows/plugin/output_contract/dsl.rb

Overview

DSL for OutputContract plugin.

Since:

  • 0.4.0

Constant Summary collapse

SingletonVarsSetup =

Since:

  • 0.4.0

Flows::Util::InheritableSingletonVars::DupStrategy.make_module(
  '@success_contracts' => {},
  '@failure_contracts' => {},
  '@skip_output_contract_flag' => false
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#failure_contractsObject (readonly)

Hash of contracts for failure results.

Since:

  • 0.4.0



10
11
12
# File 'lib/flows/plugin/output_contract/dsl.rb', line 10

def failure_contracts
  @failure_contracts
end

#skip_output_contract_flagObject (readonly)

Is contract check and transformation disabled

Since:

  • 0.4.0



13
14
15
# File 'lib/flows/plugin/output_contract/dsl.rb', line 13

def skip_output_contract_flag
  @skip_output_contract_flag
end

#success_contractsObject (readonly)

Hash of contracts for successful results.

Since:

  • 0.4.0



7
8
9
# File 'lib/flows/plugin/output_contract/dsl.rb', line 7

def success_contracts
  @success_contracts
end

Instance Method Details

#failure_with(status, &contract_block) ⇒ Object

Defines a contract for a failure result with specific status.

Parameters:

  • status (Symbol)

    Corresponding result status.

  • contract_block (Proc)

    This block will be passed to Contract.make to get a contract.

Since:

  • 0.4.0



35
36
37
# File 'lib/flows/plugin/output_contract/dsl.rb', line 35

def failure_with(status, &contract_block)
  failure_contracts[status] = Flows::Contract.make(&contract_block)
end

#skip_output_contract(enable: true) ⇒ Object

Disables contract check and transformation for current class and children.

Parameters:

  • enable (Boolean) (defaults to: true)

    if true - contracts are disabled

Since:

  • 0.4.0



42
43
44
# File 'lib/flows/plugin/output_contract/dsl.rb', line 42

def skip_output_contract(enable: true)
  @skip_output_contract_flag = enable
end

#success_with(status, &contract_block) ⇒ Object

Defines a contract for a successful result with specific status.

Parameters:

  • status (Symbol)

    Corresponding result status.

  • contract_block (Proc)

    This block will be passed to Contract.make to get a contract.

Since:

  • 0.4.0



27
28
29
# File 'lib/flows/plugin/output_contract/dsl.rb', line 27

def success_with(status, &contract_block)
  success_contracts[status] = Flows::Contract.make(&contract_block)
end