Class: Pubid::Astm::Components::Code

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

Overview

Code component for ASTM identifiers.

Stays independent of Pubid::Components::Code because ASTM has a rich taxonomy: letter (A-G for standards), suffix (A/B/C for data series), subseries (S1/S4/S10), and dual_m (metric flag).

Instance Method Summary collapse

Instance Method Details

#render(context: nil) ⇒ Object



36
37
38
# File 'lib/pubid/astm/components/code.rb', line 36

def render(context: nil)
  to_s
end

#to_sObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pubid/astm/components/code.rb', line 20

def to_s
  if letter
    parts = [letter, number]
    parts << suffix if suffix
    result = parts.join
    result += "-S#{subseries}" if subseries
    result += "M" if dual_m
  else
    # No letter (e.g., DataSeries, ISO/ASTM dual)
    result = number.to_s
    result += suffix if suffix
    result += "-S#{subseries}" if subseries
  end
  result
end