Module: Lutaml::Model::Validation
- Included in:
- Serialize
- Defined in:
- lib/lutaml/model/validation.rb
Instance Method Summary collapse
- #validate(register: Lutaml::Model::Config.default_register) ⇒ Object
- #validate!(register: Lutaml::Model::Config.default_register) ⇒ Object
- #validate_helper(errors) ⇒ Object
Instance Method Details
#validate(register: Lutaml::Model::Config.default_register) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/lutaml/model/validation.rb', line 4 def validate(register: Lutaml::Model::Config.default_register) errors = [] self.class.attributes.each do |name, attr| value = public_send(:"#{name}") begin if value.respond_to?(:validate) errors.concat(value.validate) else attr.validate_value!(value, register) end rescue Lutaml::Model::InvalidValueError, Lutaml::Model::CollectionCountOutOfRangeError, Lutaml::Model::CollectionTrueMissingError, Lutaml::Model::PolymorphicError, Lutaml::Model::ValidationFailedError, PatternNotMatchedError => e errors << e end end validate_helper(errors) end |
#validate!(register: Lutaml::Model::Config.default_register) ⇒ Object
28 29 30 31 |
# File 'lib/lutaml/model/validation.rb', line 28 def validate!(register: Lutaml::Model::Config.default_register) errors = validate(register: register) raise Lutaml::Model::ValidationError.new(errors) if errors.any? end |
#validate_helper(errors) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/lutaml/model/validation.rb', line 33 def validate_helper(errors) self.class.choice_attributes.each do |attribute| attribute.validate_content!(self) end errors rescue Lutaml::Model::ChoiceUpperBoundError, Lutaml::Model::ChoiceLowerBoundError => e errors << e end |