Class: Pubid::Core::Renderer::Urn

Inherits:
Base
  • Object
show all
Defined in:
lib/pubid/core/renderer/urn.rb

Constant Summary collapse

STAGES =
{ PWI: 0,
NP: 10,
AWI: 20,
WD: 20.20,
CD: 30,
DIS: 40,
FDIS: 50,
PRF: 50,
IS: 60 }.freeze

Constants inherited from Base

Base::LANGUAGES

Instance Attribute Summary

Attributes inherited from Base

#params

Instance Method Summary collapse

Methods inherited from Base

#initialize, #prerender_params, #render, #render_year

Constructor Details

This class inherits a constructor from Pubid::Core::Renderer::Base

Instance Method Details

#render_amendments(amendments, _opts, _params) ⇒ Object



38
39
40
# File 'lib/pubid/core/renderer/urn.rb', line 38

def render_amendments(amendments, _opts, _params)
  amendments&.map(&:render_urn)&.join || ""
end

#render_copublisher(copublisher, _opts, _params) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/pubid/core/renderer/urn.rb', line 22

def render_copublisher(copublisher, _opts, _params)
  return "-#{copublisher.downcase}" unless copublisher.is_a?(Array)

  copublisher.map(&:to_s).sort.map do |copublisher|
    "-#{copublisher.downcase}"
  end.join
end

#render_corrigendum_stage(stage, opts, params) ⇒ Object



60
61
62
# File 'lib/pubid/core/renderer/urn.rb', line 60

def render_corrigendum_stage(stage, opts, params)
  render_stage(stage, opts, params)
end

#render_corrigendums(corrigendums, _opts, _params) ⇒ Object



42
43
44
# File 'lib/pubid/core/renderer/urn.rb', line 42

def render_corrigendums(corrigendums, _opts, _params)
  corrigendums&.map(&:render_urn)&.join || ""
end

#render_edition(edition, _opts, _params) ⇒ Object



30
31
32
# File 'lib/pubid/core/renderer/urn.rb', line 30

def render_edition(edition, _opts, _params)
  ":ed-#{edition}"
end

#render_identifier(params) ⇒ Object



13
14
15
16
# File 'lib/pubid/core/renderer/urn.rb', line 13

def render_identifier(params)
  "urn:iso:std:%{publisher}%{copublisher}%{type}:%{number}%{part}%{stage}"\
  "%{urn_stage}%{corrigendum_stage}%{iteration}%{edition}%{amendments}%{corrigendums}%{language}" % params
end

#render_iteration(iteration, _opts, params) ⇒ Object



64
65
66
# File 'lib/pubid/core/renderer/urn.rb', line 64

def render_iteration(iteration, _opts, params)
  ".v#{iteration}" if params[:stage]
end

#render_language(language, _opts, _params) ⇒ Object



46
47
48
# File 'lib/pubid/core/renderer/urn.rb', line 46

def render_language(language, _opts, _params)
  ":#{language}"
end

#render_part(part, _opts, _params) ⇒ Object



68
69
70
# File 'lib/pubid/core/renderer/urn.rb', line 68

def render_part(part, _opts, _params)
  ":-#{part}"
end

#render_publisher(publisher, _opts, _params) ⇒ Object



18
19
20
# File 'lib/pubid/core/renderer/urn.rb', line 18

def render_publisher(publisher, _opts, _params)
  publisher.downcase
end

#render_stage(stage, _opts, _params) ⇒ Object



50
51
52
53
54
# File 'lib/pubid/core/renderer/urn.rb', line 50

def render_stage(stage, _opts, _params)
  return ":stage-#{sprintf('%05.2f', stage)}" if stage.is_a?(Float)

  ":stage-#{sprintf('%05.2f', STAGES[stage.to_sym])}"
end

#render_type(type, _, _) ⇒ Object



34
35
36
# File 'lib/pubid/core/renderer/urn.rb', line 34

def render_type(type, _, _)
  ":#{type.downcase}"
end

#render_urn_stage(stage, opts, params) ⇒ Object



56
57
58
# File 'lib/pubid/core/renderer/urn.rb', line 56

def render_urn_stage(stage, opts, params)
  render_stage(stage, opts, params)
end