Module: Pubid::Cen::Identifier

Extended by:
Pubid::Core::Identifier
Defined in:
lib/pubid/cen/identifier.rb,
lib/pubid/cen/identifier/base.rb,
lib/pubid/cen/identifier/guide.rb,
lib/pubid/cen/identifier/amendment.rb,
lib/pubid/cen/identifier/corrigendum.rb,
lib/pubid/cen/identifier/technical_report.rb,
lib/pubid/cen/identifier/cen_workshop_agreement.rb,
lib/pubid/cen/identifier/harmonization_document.rb,
lib/pubid/cen/identifier/technical_specification.rb

Defined Under Namespace

Classes: Amendment, Base, CenWorkshopAgreement, Corrigendum, Guide, HarmonizationDocument, TechnicalReport, TechnicalSpecification

Class Method Summary collapse

Class Method Details

.parse(*args) ⇒ Object

See Also:

  • Identifier::Base.parse


7
8
9
# File 'lib/pubid/cen/identifier.rb', line 7

def parse(*args)
  Base.parse(*args)
end

.resolve_identifier(parameters = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/pubid/cen/identifier.rb', line 11

def resolve_identifier(parameters = {})
  return @config.default_type.new(**parameters) if parameters[:type].nil?

  @config.types.each do |identifier_type|
    return identifier_type.new(**parameters) if identifier_type.type_match?(parameters)
  end

  raise Errors::ParseTypeError, "cannot parse type #{parameters[:type]}"
end