Module: SvgConform::Validation::TrackerFactory

Defined in:
lib/svg_conform/validation/tracker_factory.rb

Overview

Factory for creating tracker objects used in ValidationContext Centralizes tracker object creation for cleaner initialization

Class Method Summary collapse

Class Method Details

.create_all_trackers(document) ⇒ Hash

Create all trackers for a ValidationContext

Parameters:

  • document (Document, nil)

    The document (nil for SAX mode)

Returns:

  • (Hash)

    Hash of tracker instances



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/svg_conform/validation/tracker_factory.rb', line 39

def self.create_all_trackers(document)
  node_id_manager = create_node_id_manager(document)

  {
    error_tracker: create_error_tracker,
    node_id_manager: node_id_manager,
    structural_invalidity_tracker: create_structural_invalidity_tracker(
      node_id_generator: ->(node) {
        node_id_manager.generate_node_id(node)
      },
    ),
    reference_manifest: create_reference_manifest(source_document: document&.file_path),
  }
end

.create_error_trackerObject

Create a new ErrorTracker instance



14
15
16
# File 'lib/svg_conform/validation/tracker_factory.rb', line 14

def self.create_error_tracker
  ErrorTracker.new
end

.create_node_id_manager(document) ⇒ Object

Create a new NodeIdManager instance

Parameters:

  • document (Document, nil)

    The document (nil for SAX mode)



20
21
22
# File 'lib/svg_conform/validation/tracker_factory.rb', line 20

def self.create_node_id_manager(document)
  NodeIdManager.new(document)
end

.create_reference_manifest(source_document: nil) ⇒ Object

Create a new ReferenceManifest instance

Parameters:

  • source_document (String, nil) (defaults to: nil)

    Optional source document path



32
33
34
# File 'lib/svg_conform/validation/tracker_factory.rb', line 32

def self.create_reference_manifest(source_document: nil)
  References::ReferenceManifest.new(source_document: source_document)
end

.create_structural_invalidity_tracker(node_id_generator:) ⇒ Object

Create a new StructuralInvalidityTracker instance

Parameters:

  • node_id_generator (Proc)

    Callable that generates node IDs



26
27
28
# File 'lib/svg_conform/validation/tracker_factory.rb', line 26

def self.create_structural_invalidity_tracker(node_id_generator:)
  StructuralInvalidityTracker.new(node_id_generator: node_id_generator)
end