24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/pubid/itu/model.rb', line 24
def to_s
parts = []
parts << "ITU-#{sector}" if sector
if series == "OB"
parts << "#{series} No. #{number}"
elsif series&.start_with?("SG")
parts << "#{series}.#{number}"
parts[-1] << "-#{part}" if part
elsif series == "R" && !number
parts << "R.#{number}"
parts[-1] << "-#{part}" if part
elsif series
series_str = series.to_s
if number
series_str << ".#{number}"
series_str << ".#{subseries}" if subseries
series_str << "-#{part}" if part
end
parts << series_str
if second_number.is_a?(Hash)
second_str = "/#{second_number[:series]}.#{second_number[:number]}"
second_str << ".#{second_number[:subseries]}" if second_number[:subseries]
second_str << "-#{second_number[:part]}" if second_number[:part]
parts[-1] << second_str
end
if range.is_a?(Hash)
parts[-1] << "-#{range[:series]}.#{range[:number]}"
end
elsif number && !series
parts << number
parts[-1] << "-#{part}" if part
end
if supplement
parts << "Suppl. #{supplement}"
end
if annex
parts << "Annex #{annex}"
end
if month && year
parts << "(#{month.rjust(2, '0')}/#{year})"
elsif year
parts << "(#{year})"
end
if amendment
parts << "Amd #{amendment}"
end
if corrigendum
parts << "Cor. #{corrigendum}"
end
if addendum
parts << "Add. #{addendum}"
end
if appendix
parts << "App. #{appendix}"
end
parts.join(" ")
end
|