Class: Lutaml::Xsd::Validation::Facets::FacetValidatorRegistry
- Inherits:
-
Object
- Object
- Lutaml::Xsd::Validation::Facets::FacetValidatorRegistry
- Defined in:
- lib/lutaml/xsd/validation/facets/facet_validator_registry.rb
Overview
Registry for mapping facet types to their validators
This registry provides a centralized lookup mechanism for obtaining the appropriate validator for a given facet type.
Defined Under Namespace
Classes: UnknownFacetError
Constant Summary collapse
- VALIDATORS =
Map of facet classes to validator classes
{ "Lutaml::Xsd::Pattern" => PatternFacetValidator, "Lutaml::Xsd::Length" => LengthFacetValidator, "Lutaml::Xsd::MinLength" => MinLengthFacetValidator, "Lutaml::Xsd::MaxLength" => MaxLengthFacetValidator, "Lutaml::Xsd::Enumeration" => EnumerationFacetValidator, "Lutaml::Xsd::MinInclusive" => MinInclusiveFacetValidator, "Lutaml::Xsd::MaxInclusive" => MaxInclusiveFacetValidator, "Lutaml::Xsd::MinExclusive" => MinExclusiveFacetValidator, "Lutaml::Xsd::MaxExclusive" => MaxExclusiveFacetValidator, "Lutaml::Xsd::TotalDigits" => TotalDigitsFacetValidator, "Lutaml::Xsd::FractionDigits" => FractionDigitsFacetValidator, "Lutaml::Xsd::WhiteSpace" => WhiteSpaceFacetValidator, }.freeze
Class Method Summary collapse
-
.register(facet_class, validator_class) ⇒ void
Register a custom facet validator.
-
.registered?(facet) ⇒ Boolean
Check if a facet type is registered.
-
.registered_facets ⇒ Array<String>
Get all registered facet types.
-
.validator_for(facet) ⇒ FacetValidator
Get validator instance for a facet.
Class Method Details
.register(facet_class, validator_class) ⇒ void
This method returns an undefined value.
Register a custom facet validator
75 76 77 78 |
# File 'lib/lutaml/xsd/validation/facets/facet_validator_registry.rb', line 75 def register(facet_class, validator_class) facet_name = facet_class.is_a?(String) ? facet_class : facet_class.name VALIDATORS[facet_name] = validator_class end |
.registered?(facet) ⇒ Boolean
Check if a facet type is registered
65 66 67 68 |
# File 'lib/lutaml/xsd/validation/facets/facet_validator_registry.rb', line 65 def registered?(facet) facet_class = facet.is_a?(Class) ? facet.name : facet.class.name VALIDATORS.key?(facet_class) end |
.registered_facets ⇒ Array<String>
Get all registered facet types
83 84 85 |
# File 'lib/lutaml/xsd/validation/facets/facet_validator_registry.rb', line 83 def registered_facets VALIDATORS.keys end |
.validator_for(facet) ⇒ FacetValidator
Get validator instance for a facet
54 55 56 57 58 59 |
# File 'lib/lutaml/xsd/validation/facets/facet_validator_registry.rb', line 54 def validator_for(facet) validator_class = VALIDATORS[facet.class.name] raise UnknownFacetError, facet.class.name unless validator_class validator_class.new(facet) end |