Class: Pubid::UrnParser::Base
- Inherits:
-
Object
- Object
- Pubid::UrnParser::Base
- Defined in:
- lib/pubid/urn_parser/base.rb
Overview
Base class for flavor-specific URN parsers.
A UrnParser inverts its sibling UrnGenerator: it consumes the URN emitted by {Flavor::UrnGenerator} and rebuilds an Identifier. The preferred strategy is to reconstruct a human-readable identifier string from the URN fields and delegate to the flavor’s text parser —this keeps parsing logic in one place (the flavor’s text parser).
Subclasses MUST override #parse_urn. They typically use #strip_namespace and #flavor_parse helpers and may pass through #build_from_parts for the common ‘urn:flavor:publisher:type: number:year` shape.
Direct Known Subclasses
Amca::UrnParser, Ansi::UrnParser, Api::UrnParser, Ashrae::UrnParser, Asme::UrnParser, Astm::UrnParser, Bsi::UrnParser, Ccsds::UrnParser, CenCenelec::UrnParser, Cie::UrnParser, Csa::UrnParser, Etsi::UrnParser, Idf::UrnParser, Ieee::UrnParser, Iho::UrnParser, Itu::UrnParser, Jcgm::UrnParser, Jis::UrnParser, Nist::UrnParser, Oiml::UrnParser, Plateau::UrnParser, Sae::UrnParser
Class Method Summary collapse
-
.parse(urn) ⇒ Pubid::Identifier
Parse a URN string into an Identifier.
Instance Method Summary collapse
-
#parse_urn(_urn) ⇒ Object
Subclasses override.
Class Method Details
.parse(urn) ⇒ Pubid::Identifier
Parse a URN string into an Identifier.
21 22 23 |
# File 'lib/pubid/urn_parser/base.rb', line 21 def self.parse(urn) new.parse_urn(urn) end |
Instance Method Details
#parse_urn(_urn) ⇒ Object
Subclasses override.
27 28 29 30 |
# File 'lib/pubid/urn_parser/base.rb', line 27 def parse_urn(_urn) raise NotImplementedError, "#{self.class} must implement #parse_urn" end |