Class: Pubid::Etsi::Identifier

Inherits:
Object
  • Object
show all
Defined in:
lib/pubid/etsi/identifier.rb

Class Method Summary collapse

Class Method Details

.create(**opts) ⇒ Object

Factory mirroring pubid 1.x’s ‘Pubid::Etsi::Identifier.create` API.

ETSI’s ‘type` kwarg (EN, ES, EG, TS, TR, GS, GR, GTS, …) is data stored on the identifier instance, not a class-dispatch key — all ETSI standards share the Pubid::Etsi::Identifiers::EtsiStandard class.

Parameters:

  • opts (Hash)

    :type, :code/:number, :parts, :version, :year, :month, :date



21
22
23
# File 'lib/pubid/etsi/identifier.rb', line 21

def self.create(**opts)
  Identifiers::EtsiStandard.new(**coerce_create_attrs(opts))
end

.parse(identifier) ⇒ Object



6
7
8
9
10
11
# File 'lib/pubid/etsi/identifier.rb', line 6

def self.parse(identifier)
  parsed = Parser.parse(identifier)
  Builder.build(parsed)
rescue Parslet::ParseFailed => e
  raise "Failed to parse ETSI identifier '#{identifier}': #{e.message}"
end