Class: Pubid::Gost::UrnParser

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

Overview

Parses GOST URNs back into identifiers.

UrnGenerator emits:

urn:gost:std:<number>[:<year>]              (interstate)
urn:gost:std:r:<number>[:<year>]            (Russian national)

Examples:

urn:gost:std:14946:82           → GOST 14946-82
urn:gost:std:r:34.12:2015       → GOST R 34.12-2015

Constant Summary collapse

PREFIX =
"urn:gost:std:".freeze

Instance Method Summary collapse

Methods inherited from UrnParser::Base

parse

Instance Method Details

#parse_urn(urn) ⇒ Object



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

def parse_urn(urn)
  body = strip_namespace(urn)
  parts = split_parts(body)

  if parts.first == "r"
    number = parts[1]
    year = parts[2]
    Identifiers::NationalStandard.new(number: number, year: year)
  else
    number = parts[0]
    year = parts[1]
    Identifiers::InterstateStandard.new(number: number, year: year)
  end
end