Class: Pubid::Ccsds::Scheme
Instance Attribute Summary
Attributes inherited from Scheme
#identifiers, #languages, #publishers, #stages, #supplement_identifiers, #types
Class Method Summary
collapse
Methods inherited from Scheme
#all_identifier_classes, #all_typed_stages, #configure, #identifier_class_index, #initialize, #locate_identifier_klass_by_type_code, #locate_typed_stage_by_abbr, #locate_typed_stage_by_harmonized_code, #locate_typed_stage_by_stage_code, #supplement_typed_stages, #typed_stage_index, #typed_stages
Constructor Details
This class inherits a constructor from Pubid::Scheme
Class Method Details
.identifiers ⇒ Object
7
8
9
10
11
|
# File 'lib/pubid/ccsds/scheme.rb', line 7
def identifiers
[
Identifiers::Base,
]
end
|
.locate_identifier_klass_by_type_code(type_code) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/pubid/ccsds/scheme.rb', line 42
def locate_identifier_klass_by_type_code(type_code)
identifier_klass = (identifiers + supplement_identifiers).detect do |klass|
klass.type[:key].to_s == type_code.to_s
end
unless identifier_klass
raise ArgumentError,
"Unknown type code: #{type_code}"
end
identifier_klass
end
|
.locate_typed_stage_by_abbr(abbr) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/pubid/ccsds/scheme.rb', line 27
def locate_typed_stage_by_abbr(abbr)
abbr = "" if abbr.nil?
typed_stage = (typed_stages + supplement_typed_stages).detect do |ts|
ts.abbr.include?(abbr)
end
unless typed_stage
raise ArgumentError,
"Unknown type abbreviation: '#{abbr}'"
end
typed_stage
end
|
.supplement_identifiers ⇒ Object
13
14
15
16
17
|
# File 'lib/pubid/ccsds/scheme.rb', line 13
def supplement_identifiers
[
Identifiers::Corrigendum,
]
end
|
.supplement_typed_stages ⇒ Object
23
24
25
|
# File 'lib/pubid/ccsds/scheme.rb', line 23
def supplement_typed_stages
supplement_identifiers.flat_map { |klass| klass::TYPED_STAGES }
end
|
.typed_stages ⇒ Object
19
20
21
|
# File 'lib/pubid/ccsds/scheme.rb', line 19
def typed_stages
identifiers.flat_map { |klass| klass::TYPED_STAGES }
end
|