Sha256: 49d076f31d794846843f560b56f8b3b7f9dfb0594763f3a31036d763e5f48e11
Contents?: true
Size: 1.69 KB
Versions: 1
Compression:
Stored size: 1.69 KB
Contents
module Flows module Plugin module OutputContract # DSL for OutputContract plugin. module DSL # Hash of contracts for successful results. attr_reader :success_contracts # Hash of contracts for failure results. attr_reader :failure_contracts # Is contract check and transformation disabled attr_reader :skip_output_contract_flag SingletonVarsSetup = Flows::Util::InheritableSingletonVars::DupStrategy.make_module( '@success_contracts' => {}, '@failure_contracts' => {}, '@skip_output_contract_flag' => false ) include SingletonVarsSetup # Defines a contract for a successful result with specific status. # # @param status [Symbol] Corresponding result status. # @param contract_block [Proc] This block will be passed to {Contract.make} to get a contract. def success_with(status, &contract_block) success_contracts[status] = Flows::Contract.make(&contract_block) end # Defines a contract for a failure result with specific status. # # @param status [Symbol] Corresponding result status. # @param contract_block [Proc] This block will be passed to {Contract.make} to get a contract. def failure_with(status, &contract_block) failure_contracts[status] = Flows::Contract.make(&contract_block) end # Disables contract check and transformation for current class and children. # # @param enable [Boolean] if true - contracts are disabled def skip_output_contract(enable: true) @skip_output_contract_flag = enable end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flows-0.6.0 | lib/flows/plugin/output_contract/dsl.rb |