Class: Pubid::Iala::Renderer

Inherits:
Renderers::Base show all
Defined in:
lib/pubid/iala/renderer.rb

Overview

Human-readable renderer for IALA identifiers.

Produces strings like:

"IALA S1070"
"IALA S1070 Ed 2.0"
"IALA R1016 Ed 2.0 (F)"

Constant Summary

Constants inherited from Renderers::Base

Renderers::Base::SEMANTIC_SPLIT, Renderers::Base::TYPED_STAGE_CSS

Instance Method Summary collapse

Methods inherited from Renderers::Base

#initialize, render

Constructor Details

This class inherits a constructor from Pubid::Renderers::Base

Instance Method Details

#render(context: nil, **_opts) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/pubid/iala/renderer.rb', line 12

def render(context: nil, **_opts)
  id = @id

  return render_annex(id) if id.is_a?(Identifiers::Annex)

  rendered = "#{id.publisher} #{id.type_letter}#{id.number}"
  rendered << " Ed #{id.edition}" if id.edition
  rendered << " (#{id.language})" if id.language
  rendered
end

#render_annex(id) ⇒ Object

Render an Annex wrapper. The base identifier is rendered first, then the marker form is preserved verbatim ("Annex" vs "ANNEX"), then the optional letter, edition, and language.



26
27
28
29
30
31
32
33
# File 'lib/pubid/iala/renderer.rb', line 26

def render_annex(id)
  base_str = id.base_identifier.to_s
  rendered = "#{base_str} #{id.annex_form}"
  rendered << " #{id.letter}" if id.letter
  rendered << " Ed #{id.edition}" if id.edition
  rendered << " (#{id.language})" if id.language
  rendered
end