Class: Pubid::Adobe::UrnParser

Inherits:
UrnParser::Base show all
Defined in:
lib/pubid/adobe/urn_parser.rb

Overview

Parses Adobe URNs back into identifiers.

UrnGenerator emits:

urn:adobe:tech-note:<number>
urn:adobe:publication:<slug>[:v<version>]

Examples:

urn:adobe:tech-note:5014                  → Adobe Technical Note #5014
urn:adobe:publication:adobe-glyph-list    → adobe-glyph-list
urn:adobe:publication:adobe-japan1:v7     → adobe-japan1-7

Constant Summary collapse

PREFIX =
"urn:adobe:".freeze

Instance Method Summary collapse

Methods inherited from UrnParser::Base

parse

Instance Method Details

#parse_urn(urn) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/pubid/adobe/urn_parser.rb', line 18

def parse_urn(urn)
  body = strip_namespace(urn)
  parts = split_parts(body)
  namespace = parts.fetch(0)

  case namespace
  when "tech-note"
    parse_tech_note(parts)
  when "publication"
    parse_publication(parts)
  else
    raise Pubid::UrnParser::Errors::ParseError,
          "Unknown Adobe URN namespace: #{namespace.inspect} in #{urn.inspect}"
  end
end