Module: Strict::Validation

Defined in:
lib/strict/validation.rb

Constant Summary collapse

NONE =
[].freeze
ROOT_PATH =
[].freeze

Class Method Summary collapse

Class Method Details

.invalid(validator, value) ⇒ Object



17
18
19
# File 'lib/strict/validation.rb', line 17

def invalid(validator, value)
  [Violation.new(path: ROOT_PATH, code: :invalid, value: value, validator: validator)]
end

.missing(validator, path:) ⇒ Object



21
22
23
# File 'lib/strict/validation.rb', line 21

def missing(validator, path:)
  Violation.new(path: path, code: :missing, value: nil, validator: validator)
end

.prepend_path(violations, *segments) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/strict/validation.rb', line 29

def prepend_path(violations, *segments)
  violations.map do |violation|
    Violation.new(
      path: segments + violation.path,
      code: violation.code,
      value: violation.value,
      validator: violation.validator
    )
  end
end

.unexpected(value, path:) ⇒ Object



25
26
27
# File 'lib/strict/validation.rb', line 25

def unexpected(value, path:)
  Violation.new(path: path, code: :unexpected, value: value, validator: nil)
end

.violations(validator, value) ⇒ Object



10
11
12
13
14
15
# File 'lib/strict/validation.rb', line 10

def violations(validator, value)
  return validator.violations(value) if DetailedValidator === validator
  return NONE if validator === value

  invalid(validator, value)
end