Class: Lutaml::Model::Validator

Inherits:
Services::Base show all
Defined in:
lib/lutaml/model/services/validator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Services::Base

call

Constructor Details

#initialize(value, validations, memoization_container) ⇒ Validator

Returns a new instance of Validator.



30
31
32
33
34
35
36
37
38
# File 'lib/lutaml/model/services/validator.rb', line 30

def initialize(value, validations, memoization_container)
  super()

  @errors = Errors.new
  @value = value
  @memoization_container = memoization_container

  resolve_validations(validations)
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



28
29
30
# File 'lib/lutaml/model/services/validator.rb', line 28

def errors
  @errors
end

#memoization_containerObject (readonly)

Returns the value of attribute memoization_container.



28
29
30
# File 'lib/lutaml/model/services/validator.rb', line 28

def memoization_container
  @memoization_container
end

#validationsObject (readonly)

Returns the value of attribute validations.



28
29
30
# File 'lib/lutaml/model/services/validator.rb', line 28

def validations
  @validations
end

#valueObject (readonly)

Returns the value of attribute value.



28
29
30
# File 'lib/lutaml/model/services/validator.rb', line 28

def value
  @value
end

Instance Method Details

#callObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/lutaml/model/services/validator.rb', line 40

def call
  return [] if Utils.blank?(validations)

  @validations.each do |validation|
    if validation.custom?
      public_send(validation.custom_method, value)
    else
      validation.options.each do |key, rule|
        send(:"validate_#{key}", value, validation.attribute, rule)
      end
    end
  end

  errors.messages
end