Class: Glossarist::GcrValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/glossarist/gcr_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(on_progress: nil) ⇒ GcrValidator

Returns a new instance of GcrValidator.



7
8
9
# File 'lib/glossarist/gcr_validator.rb', line 7

def initialize(on_progress: nil)
  @on_progress = on_progress
end

Instance Method Details

#validate(zip_path) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/glossarist/gcr_validator.rb', line 11

def validate(zip_path)
  result = ValidationResult.new

  unless File.exist?(zip_path)
    result.add_error("File not found: #{zip_path}")
    return result
  end

  begin
    zip_entries = Zip::File.open(zip_path) { |zf| zf.entries.to_set(&:name) }
  rescue StandardError => e
    result.add_error("Failed to read ZIP: #{e.message}")
    return result
  end

  unless zip_entries.include?("metadata.yaml")
    result.add_error("Missing metadata.yaml")
    return result
  end

  context, all_concepts = load_gcr_context(zip_path, result)
  return result if all_concepts.nil?

  validate_concepts(context, all_concepts, result)
  validate_collection(context, result)

  result
end