Class: SvgConform::Requirements::IdCollectionRequirement

Inherits:
BaseRequirement
  • Object
show all
Defined in:
lib/svg_conform/requirements/id_collection_requirement.rb

Overview

Collects all ID definitions in the document for reference validation

Instance Method Summary collapse

Methods inherited from BaseRequirement

#collect_sax_data, #element?, #get_attribute, #get_attributes, #has_attribute?, #needs_deferred_validation?, #remove_attribute, #set_attribute, #should_check_node?, #text?, #to_s, #validate_document, #validate_sax_complete

Instance Method Details

#check(node, context) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/svg_conform/requirements/id_collection_requirement.rb', line 9

def check(node, context)
  return unless element?(node)

  id_value = get_attribute(node, "id")
  return unless id_value

  # Register the ID in the manifest
  context.register_id(
    id_value,
    element_name: node.name,
    line_number: node.respond_to?(:line) ? node.line : nil,
    column_number: node.respond_to?(:column) ? node.column : nil,
  )
end

#validate_sax_element(element, context) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/svg_conform/requirements/id_collection_requirement.rb', line 24

def validate_sax_element(element, context)
  id_value = element.raw_attributes["id"]
  return unless id_value

  # Register the ID in the manifest
  context.register_id(
    id_value,
    element_name: element.name,
    line_number: element.respond_to?(:line) ? element.line : nil,
    column_number: element.respond_to?(:column) ? element.column : nil,
  )
end