Module: Atacama
- Defined in:
- lib/atacama.rb,
lib/atacama/step.rb,
lib/atacama/types.rb,
lib/atacama/values.rb,
lib/atacama/version.rb,
lib/atacama/contract.rb,
lib/atacama/transaction.rb,
lib/atacama/contract/context.rb,
lib/atacama/contract/parameter.rb,
lib/atacama/contract/validator.rb,
lib/atacama/transaction/definition.rb
Defined Under Namespace
Modules: Types, Values Classes: Context, Contract, Definition, Parameter, Step, Transaction, Validator
Constant Summary collapse
- OptionTypeMismatchError =
Class.new(StandardError)
- ReturnTypeMismatchError =
Class.new(StandardError)
- ResultTypeMismatchError =
Class.new(StandardError)
- VERSION =
'0.2.2'.freeze
Class Method Summary collapse
-
.check(type, value) ⇒ Object
Execute a type check, catch and yield if theres an error.
-
.format_exception(klass, exception, description) ⇒ Object
Generate more human readable error messages for type errors.
Class Method Details
.check(type, value) ⇒ Object
Execute a type check, catch and yield if theres an error.
20 21 22 23 24 25 |
# File 'lib/atacama.rb', line 20 def self.check(type, value) type && type[value] nil rescue Dry::Types::ConstraintError => exception yield exception end |
.format_exception(klass, exception, description) ⇒ Object
Generate more human readable error messages for type errors.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/atacama.rb', line 31 def self.format_exception(klass, exception, description) [ '', '', 'Source:', " #{klass}", '', 'Description:', " #{description}", '', 'Error:', " The value #{exception.input.inspect} failed the following test: #{exception.result}", '' ].join("\n") end |