class Atacama::Validator
Validation execution class for a given set of parameters and options.
Attributes
context[R]
klass[R]
options[R]
Public Class Methods
call(**context)
click to toggle source
# File lib/atacama/contract/validator.rb, line 6 def self.call(**context) new(**context).call end
new(options:, context:, klass:)
click to toggle source
@param options [Hash] options schema @param context [Atacama::Context] keyword arguments to validate
# File lib/atacama/contract/validator.rb, line 12 def initialize(options:, context:, klass:) @options = options @context = context @klass = klass end
Public Instance Methods
call()
click to toggle source
# File lib/atacama/contract/validator.rb, line 18 def call detect_invalid_types! end
Private Instance Methods
detect_invalid_types!()
click to toggle source
# File lib/atacama/contract/validator.rb, line 26 def detect_invalid_types! options.each do |key, parameter| value = context[key] Atacama.check parameter.type, value do |e| raise OptionTypeMismatchError, Atacama.format_exception(klass, e, "The value #{value.inspect} for #{key.inspect} is the incorrect type" ) end end end