Class: Uniword::Validation::LayerValidator
- Inherits:
-
Object
- Object
- Uniword::Validation::LayerValidator
- Defined in:
- lib/uniword/validation/layer_validator.rb
Overview
Base class for all layer validators.
Responsibility: Define the interface for layer validation. Single Responsibility: Only provides validation interface.
Each layer validator validates one specific aspect of document structure:
-
File structure (existence, permissions, etc.)
-
ZIP integrity (valid archive, no corruption)
-
OOXML parts (required files present)
-
XML schema (well-formed XML)
-
Relationships (valid references)
-
Content types (consistent type declarations)
-
Document semantics (valid structure)
Direct Known Subclasses
Validators::ContentTypeValidator, Validators::DocumentSemanticsValidator, Validators::FileStructureValidator, Validators::OoxmlPartValidator, Validators::RelationshipValidator, Validators::XmlSchemaValidator, Validators::ZipIntegrityValidator
Instance Attribute Summary collapse
-
#config ⇒ Hash
readonly
Configuration for this validator.
Instance Method Summary collapse
-
#enabled? ⇒ Boolean
Check if this validator is enabled.
-
#initialize(config = {}) ⇒ LayerValidator
constructor
Initialize a layer validator.
-
#layer_name ⇒ String
Get the name of this validation layer.
-
#validate(path) ⇒ LayerValidationResult
Validate the document at this layer.
Constructor Details
#initialize(config = {}) ⇒ LayerValidator
Initialize a layer validator.
44 45 46 |
# File 'lib/uniword/validation/layer_validator.rb', line 44 def initialize(config = {}) @config = config || {} end |
Instance Attribute Details
#config ⇒ Hash (readonly)
Returns Configuration for this validator.
36 37 38 |
# File 'lib/uniword/validation/layer_validator.rb', line 36 def config @config end |
Instance Method Details
#enabled? ⇒ Boolean
Check if this validator is enabled.
79 80 81 82 83 84 |
# File 'lib/uniword/validation/layer_validator.rb', line 79 def enabled? layer_config = @config[config_key] return true if layer_config.nil? layer_config[:enabled] != false end |
#layer_name ⇒ String
Get the name of this validation layer.
55 56 57 58 |
# File 'lib/uniword/validation/layer_validator.rb', line 55 def layer_name raise NotImplementedError, "#{self.class} must implement #layer_name" end |
#validate(path) ⇒ LayerValidationResult
Validate the document at this layer.
68 69 70 71 |
# File 'lib/uniword/validation/layer_validator.rb', line 68 def validate(path) raise NotImplementedError, "#{self.class} must implement #validate" end |