Class: Uniword::Validation::Validators::ZipIntegrityValidator

Inherits:
LayerValidator
  • Object
show all
Defined in:
lib/uniword/validation/validators/zip_integrity_validator.rb

Overview

Validates ZIP archive integrity.

Responsibility: Validate ZIP structure and contents. Single Responsibility: Only validates ZIP integrity.

This is Layer 2 validation - validates the ZIP container that holds all OOXML parts.

Checks:

  • File opens as valid ZIP

  • ZIP is not empty

  • Required entries exist

  • Entries are not corrupted

Examples:

Validate ZIP integrity

validator = ZipIntegrityValidator.new(config)
result = validator.validate('/path/to/document.docx')
puts result.valid? # => true

Instance Attribute Summary

Attributes inherited from LayerValidator

#config

Instance Method Summary collapse

Methods inherited from LayerValidator

#enabled?, #initialize

Constructor Details

This class inherits a constructor from Uniword::Validation::LayerValidator

Instance Method Details

#layer_nameObject



28
29
30
# File 'lib/uniword/validation/validators/zip_integrity_validator.rb', line 28

def layer_name
  "ZIP Integrity"
end

#validate(path) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/uniword/validation/validators/zip_integrity_validator.rb', line 32

def validate(path)
  result = LayerValidationResult.new(layer_name)

  begin
    validate_zip_structure(path, result)
  rescue Zip::Error => e
    result.add_error(
      "Invalid ZIP file: #{e.message}",
      critical: true,
    )
  end

  result
end