Class: Pubid::Components::Language

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/pubid/components/language.rb

Overview

Language component (typically a language code)

Human render: language code, optionally single-char. URN render: lowercase ISO 639-1 code (RFC 5141-bis).

Constant Summary collapse

CHAR_MAP =
{
  "R" => "ru",
  "F" => "fr",
  "E" => "en",
  "A" => "ar",
  "S" => "es",
  "D" => "de",
}.freeze

Instance Method Summary collapse

Instance Method Details

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



32
33
34
35
36
# File 'lib/pubid/components/language.rb', line 32

def render(context: nil, **opts)
  return code&.downcase if context&.urn?

  to_s(**opts)
end

#to_s(lang_single: false) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/pubid/components/language.rb', line 22

def to_s(lang_single: false)
  if !lang_single && original_code&.length == 1
    code
  elsif original_code
    original_code
  else
    lang_single ? CHAR_MAP.key(code) : code
  end
end