Class: SvgConform::References::ReferenceClassifier
- Inherits:
-
Object
- Object
- SvgConform::References::ReferenceClassifier
- Defined in:
- lib/svg_conform/references/reference_classifier.rb
Overview
Classifies reference values into appropriate reference types
Class Method Summary collapse
-
.classify(href_value, element_name:, attribute_name:, line_number: nil, column_number: nil) ⇒ Object
Classify a reference value into its appropriate type.
- .determine_type(href) ⇒ Object
Class Method Details
.classify(href_value, element_name:, attribute_name:, line_number: nil, column_number: nil) ⇒ Object
Classify a reference value into its appropriate type
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/svg_conform/references/reference_classifier.rb', line 10 def self.classify(href_value, element_name:, attribute_name:, line_number: nil, column_number: nil) return nil if href_value.nil? || href_value.empty? reference_class = determine_type(href_value) reference_class.new( value: href_value, element_name: element_name, attribute_name: attribute_name, line_number: line_number, column_number: column_number, ) end |
.determine_type(href) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/svg_conform/references/reference_classifier.rb', line 24 def self.determine_type(href) case href when /^#/ InternalFragmentReference when /^data:/i DataUriReference when /^urn:/i UrnReference when %r{^https?://}i ExternalUrlReference when %r{^[./]} # Relative paths starting with ./ or / RelativePathReference else # Could be relative or external depending on context # Treat as relative by default (conservative approach) RelativePathReference end end |