Class: Pubid::Nist::Series::Ir
Overview
IR (Interagency Report) series carries the most series-specific logic:
- "R" or "Ur" letter suffix becomes revision "r1" (e.g., "79-1786R").
- part_num alongside second_num becomes a Part component (type "pt").
- Preprocessing converts "84-2946" → "84e2946"; this class reverses
that side effect so IR keeps the compound number form.
Class Method Summary
collapse
preserve_letter_suffix?
Methods inherited from Base
combine_letter_suffix, modern_edition_date?, preserve_letter_suffix?
Class Method Details
.cast_letter_number(value, _parsed_hash) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/pubid/nist/series/ir.rb', line 13
def self.cast_letter_number(value, _parsed_hash)
full = combine_letter_suffix(value)
return nil if full.nil? || full.empty?
if ["R", "Ur"].include?(full)
value[:letter_suffix] = full
value
else
super
end
end
|
.finalize_identifier(identifier, _parsed_hash) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/pubid/nist/series/ir.rb', line 44
def self.finalize_identifier(identifier, _parsed_hash)
return unless identifier.number
value = identifier.number.value.to_s
match = value.match(/^(\d+)e(\d{4})$/)
return unless match
identifier.number = Components::Code.new(
value: "#{match[1]}-#{match[2]}",
)
identifier.edition = nil
identifier.edition_component = nil
end
|
.handle_letter_num_compound?(identifier, first_num:, letter_base:, letter_suffix:) ⇒ Boolean
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/pubid/nist/series/ir.rb', line 29
def self.handle_letter_num_compound?(identifier,
first_num:, letter_base:,
letter_suffix:)
return false unless letter_suffix == "R"
identifier.number = Components::Code.new(
value: "#{first_num.value}-#{letter_base}",
)
edition_obj = Components::Edition.new(type: "r", id: "1")
identifier.edition = edition_obj
identifier.edition_component = edition_obj
identifier.revision = "r1"
true
end
|
.part_num_as_component? ⇒ Boolean
25
26
27
|
# File 'lib/pubid/nist/series/ir.rb', line 25
def self.part_num_as_component?
true
end
|