pubid-iso 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.adoc +118 -39
- data/lib/pubid/iso/errors.rb +0 -3
- data/lib/pubid/iso/harmonized_stage_code.rb +1 -145
- data/lib/pubid/iso/identifier/amendment.rb +52 -0
- data/lib/pubid/iso/identifier/base.rb +365 -0
- data/lib/pubid/iso/identifier/corrigendum.rb +53 -0
- data/lib/pubid/iso/identifier/directives.rb +29 -0
- data/lib/pubid/iso/identifier/guide.rb +32 -0
- data/lib/pubid/iso/identifier/international_standard.rb +45 -0
- data/lib/pubid/iso/identifier/international_standardized_profile.rb +30 -0
- data/lib/pubid/iso/identifier/international_workshop_agreement.rb +25 -0
- data/lib/pubid/iso/identifier/publicly_available_specification.rb +30 -0
- data/lib/pubid/iso/identifier/recommendation.rb +19 -0
- data/lib/pubid/iso/identifier/supplement.rb +39 -0
- data/lib/pubid/iso/identifier/technical_committee.rb +19 -0
- data/lib/pubid/iso/identifier/technical_report.rb +30 -0
- data/lib/pubid/iso/identifier/technical_specification.rb +30 -0
- data/lib/pubid/iso/identifier/technology_trends_assessments.rb +30 -0
- data/lib/pubid/iso/identifier.rb +39 -264
- data/lib/pubid/iso/parser.rb +56 -20
- data/lib/pubid/iso/renderer/amendment.rb +7 -0
- data/lib/pubid/iso/renderer/base.rb +129 -98
- data/lib/pubid/iso/renderer/corrigendum.rb +7 -0
- data/lib/pubid/iso/renderer/dir.rb +5 -3
- data/lib/pubid/iso/renderer/guide.rb +19 -0
- data/lib/pubid/iso/renderer/international_standard.rb +11 -0
- data/lib/pubid/iso/renderer/international_standardized_profile.rb +13 -0
- data/lib/pubid/iso/renderer/international_workshop_agreement.rb +17 -0
- data/lib/pubid/iso/renderer/publicly_available_specification.rb +12 -0
- data/lib/pubid/iso/renderer/recommendation.rb +13 -0
- data/lib/pubid/iso/renderer/supplement.rb +63 -0
- data/lib/pubid/iso/renderer/technical_committee.rb +47 -0
- data/lib/pubid/iso/renderer/technical_report.rb +13 -0
- data/lib/pubid/iso/renderer/technical_specification.rb +13 -0
- data/lib/pubid/iso/renderer/technology_trends_assessments.rb +13 -0
- data/lib/pubid/iso/renderer/urn-amendment.rb +12 -0
- data/lib/pubid/iso/renderer/urn-corrigendum.rb +12 -0
- data/lib/pubid/iso/renderer/urn-dir.rb +11 -3
- data/lib/pubid/iso/renderer/urn-supplement.rb +31 -0
- data/lib/pubid/iso/renderer/urn-tc.rb +2 -0
- data/lib/pubid/iso/renderer/urn.rb +25 -13
- data/lib/pubid/iso/stage.rb +1 -99
- data/lib/pubid/iso/transformer.rb +91 -107
- data/lib/pubid/iso/type.rb +9 -1
- data/lib/pubid/iso/version.rb +1 -1
- data/lib/pubid/iso.rb +20 -14
- data/stages.yaml +93 -0
- data/update_codes.yaml +1 -0
- metadata +37 -11
- data/lib/pubid/iso/amendment.rb +0 -15
- data/lib/pubid/iso/corrigendum.rb +0 -31
- data/lib/pubid/iso/renderer/french.rb +0 -29
- data/lib/pubid/iso/renderer/russian.rb +0 -64
- data/lib/pubid/iso/renderer/tc.rb +0 -30
- data/lib/pubid/iso/supplement.rb +0 -56
- data/lib/pubid/iso/typed_stage.rb +0 -204
@@ -11,33 +11,39 @@ module Pubid::Iso::Renderer
|
|
11
11
|
IS: 60 }.freeze
|
12
12
|
|
13
13
|
def prerender(with_edition: true, **args)
|
14
|
-
@params[:type_stage] = @params.slice(:stage, :type) if @params[:stage] || @params[:type]
|
14
|
+
# @params[:type_stage] = @params.slice(:stage, :type) if @params[:stage] || @params[:type]
|
15
15
|
super
|
16
16
|
end
|
17
17
|
|
18
18
|
# Render identifier
|
19
19
|
# @param with_edition [Boolean] include edition in output
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
def render(with_edition: true, with_date: true, with_language_code: :iso, **args)
|
21
|
+
render_base_identifier(**args.merge(
|
22
|
+
{ with_edition: with_edition,
|
23
|
+
with_date: with_date,
|
24
|
+
with_language_code: with_language_code },
|
25
|
+
))
|
26
|
+
end
|
27
|
+
|
28
|
+
def render_prefix(params)
|
29
|
+
"urn:iso:std:%{publisher}%{copublisher}%{type}:%{number}%{part}" % params
|
25
30
|
end
|
26
31
|
|
27
32
|
def render_identifier(params)
|
28
|
-
|
33
|
+
render_prefix(params) + "%{stage}"\
|
29
34
|
"%{corrigendum_stage}%{iteration}%{edition}%{amendments}%{corrigendums}" % params
|
30
35
|
end
|
31
36
|
|
32
|
-
def render_typed_stage(typed_stage, _opts, _params)
|
33
|
-
|
34
|
-
end
|
35
|
-
# def render_stage(stage, _opts, params)
|
36
|
-
# ":stage-#{stage.harmonized_code}"
|
37
|
+
# def render_typed_stage(typed_stage, _opts, _params)
|
38
|
+
# ":stage-#{typed_stage.stage.harmonized_code}" if typed_stage.stage
|
37
39
|
# end
|
40
|
+
#
|
41
|
+
def render_stage(stage, _opts, params)
|
42
|
+
":stage-#{stage.harmonized_code.to_s}"
|
43
|
+
end
|
38
44
|
|
39
45
|
def render_iteration(iteration, _opts, params)
|
40
|
-
".v#{iteration}" if params[:
|
46
|
+
".v#{iteration}" if params[:stage]
|
41
47
|
end
|
42
48
|
|
43
49
|
def render_type(type, _, _)
|
@@ -47,5 +53,11 @@ module Pubid::Iso::Renderer
|
|
47
53
|
def render_year(year, _opts, _params)
|
48
54
|
":#{year}"
|
49
55
|
end
|
56
|
+
|
57
|
+
def render_part(part, opts, _params)
|
58
|
+
return ":-#{part.reverse.join('-')}" if part.is_a?(Array)
|
59
|
+
|
60
|
+
":-#{part}"
|
61
|
+
end
|
50
62
|
end
|
51
63
|
end
|
data/lib/pubid/iso/stage.rb
CHANGED
@@ -1,103 +1,5 @@
|
|
1
1
|
module Pubid::Iso
|
2
|
-
class Stage
|
3
|
-
attr_accessor :abbr, :harmonized_code
|
2
|
+
class Stage < Pubid::Core::Stage
|
4
3
|
|
5
|
-
STAGES = { PWI: %w[00.00 00.20 00.60 00.98 00.99],
|
6
|
-
NP: %w[10.00 10.20 10.60 10.98 10.92],
|
7
|
-
AWI: %w[20.00 10.99],
|
8
|
-
WD: %w[20.20 20.60 20.98 20.99],
|
9
|
-
CD: %w[30.00 30.20 30.60 30.92 30.98 30.99],
|
10
|
-
PRF: "60.00" }.freeze
|
11
|
-
|
12
|
-
|
13
|
-
STAGE_NAMES = {
|
14
|
-
WD: "Working Draft",
|
15
|
-
PWI: "Preliminary Work Item",
|
16
|
-
NP: "New Proposal",
|
17
|
-
CD: "Committee Draft",
|
18
|
-
PRF: "Proof of a new International Standard",
|
19
|
-
}.freeze
|
20
|
-
|
21
|
-
# @param abbr [String, Symbol] abbreviation eg. :PWI, :WD
|
22
|
-
# @param harmonized_code [String, Float, HarmonizedStageCode]
|
23
|
-
def initialize(abbr: nil, harmonized_code: nil)
|
24
|
-
@abbr = abbr&.to_s
|
25
|
-
|
26
|
-
if harmonized_code
|
27
|
-
@harmonized_code = if harmonized_code.is_a?(HarmonizedStageCode)
|
28
|
-
harmonized_code
|
29
|
-
else
|
30
|
-
HarmonizedStageCode.new(harmonized_code)
|
31
|
-
end
|
32
|
-
@abbr ||= lookup_abbr(@harmonized_code.stages)
|
33
|
-
# unless @harmonized_code.fuzzy?
|
34
|
-
# @abbr ||= lookup_abbr(@harmonized_code.to_s) || lookup_abbr("#{@harmonized_code.stage}.00")
|
35
|
-
# end
|
36
|
-
end
|
37
|
-
|
38
|
-
if abbr
|
39
|
-
raise Errors::StageInvalidError, "#{abbr} is not valid stage" unless STAGES.key?(abbr.to_sym)
|
40
|
-
|
41
|
-
@harmonized_code ||= HarmonizedStageCode.new(lookup_code(abbr))
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# Lookup for abbreviated code by numeric stage code
|
46
|
-
# @param lookup_code [String, Array] stage code or array of stage codes,
|
47
|
-
# e.g. "00.00", "20.20", ["00.00", "00.20"]
|
48
|
-
def lookup_abbr(lookup_code)
|
49
|
-
lookup_code = lookup_code.first if lookup_code.is_a?(Array) && lookup_code.count == 1
|
50
|
-
|
51
|
-
STAGES.each do |abbr, codes|
|
52
|
-
case codes
|
53
|
-
when Array
|
54
|
-
if lookup_code.is_a?(Array)
|
55
|
-
return abbr if codes == lookup_code
|
56
|
-
else
|
57
|
-
return abbr if codes.include?(lookup_code)
|
58
|
-
end
|
59
|
-
# codes.each do |code|
|
60
|
-
# return abbr if code == lookup_code
|
61
|
-
# end
|
62
|
-
when lookup_code
|
63
|
-
return abbr
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
nil
|
68
|
-
end
|
69
|
-
|
70
|
-
def lookup_code(lookup_abbr)
|
71
|
-
STAGES[lookup_abbr.to_sym]
|
72
|
-
# code.is_a?(Array) ? code.first : code
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.parse(stage)
|
76
|
-
if /\A[\d.]+\z/.match?(stage)
|
77
|
-
Stage.new(harmonized_code: stage)
|
78
|
-
else
|
79
|
-
raise Errors::StageInvalidError unless stage.is_a?(Symbol) || stage.is_a?(String)
|
80
|
-
|
81
|
-
Stage.new(abbr: stage)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.has_stage?(stage)
|
86
|
-
if stage.is_a?(Stage)
|
87
|
-
STAGES.key?(stage.abbr.to_sym)
|
88
|
-
else
|
89
|
-
STAGES.key?(stage.to_sym) || /\A[\d.]+\z/.match?(stage)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# Compares one stage with another
|
94
|
-
def ==(other)
|
95
|
-
other&.harmonized_code == harmonized_code
|
96
|
-
end
|
97
|
-
|
98
|
-
# Return stage name, eg. "Draft International Standard" for "DIS"
|
99
|
-
def name
|
100
|
-
STAGE_NAMES[abbr.to_sym]
|
101
|
-
end
|
102
4
|
end
|
103
5
|
end
|
@@ -1,67 +1,36 @@
|
|
1
|
+
require_relative "identifier/base"
|
2
|
+
require_relative "renderer/base"
|
3
|
+
|
1
4
|
module Pubid::Iso
|
2
5
|
class Transformer < Parslet::Transform
|
3
6
|
rule(edition: "Ed") do
|
4
7
|
{ edition: "1" }
|
5
8
|
end
|
6
9
|
|
7
|
-
rule(stage:
|
8
|
-
|
10
|
+
rule(stage: subtree(:stage)) do |context|
|
11
|
+
stage_and_type = convert_stage(context[:stage])
|
12
|
+
context[:stage] = stage_and_type[:stage]
|
13
|
+
context[:type] = stage_and_type[:type] if stage_and_type[:type]
|
14
|
+
context
|
9
15
|
end
|
10
16
|
|
11
17
|
rule(supplements: subtree(:supplements)) do |context|
|
12
18
|
context[:supplements] =
|
13
19
|
context[:supplements].map do |supplement|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
# Supplement.new(
|
29
|
-
# number: supplement[:number],
|
30
|
-
# year: supplement[:year],
|
31
|
-
# typed_stage:
|
32
|
-
# case supplement[:typed_stage]
|
33
|
-
# when "FCOR"
|
34
|
-
# "FDCor"
|
35
|
-
# else
|
36
|
-
# supplement[:typed_stage]
|
37
|
-
# end,
|
38
|
-
# iteration: supplement[:iteration]
|
39
|
-
# )
|
40
|
-
supplement
|
41
|
-
end
|
42
|
-
context
|
43
|
-
end
|
44
|
-
|
45
|
-
rule(amendments: subtree(:amendments)) do |context|
|
46
|
-
context[:amendments] =
|
47
|
-
context[:amendments].map do |amendment|
|
48
|
-
Amendment.new(
|
49
|
-
number: amendment[:number],
|
50
|
-
year: amendment[:year],
|
51
|
-
typed_stage: amendment[:stage] && convert_stage(amendment[:stage]),
|
52
|
-
iteration: amendment[:iteration])
|
53
|
-
end
|
54
|
-
context
|
55
|
-
end
|
56
|
-
|
57
|
-
rule(corrigendums: subtree(:corrigendums)) do |context|
|
58
|
-
context[:corrigendums] =
|
59
|
-
context[:corrigendums].map do |corrigendum|
|
60
|
-
Corrigendum.new(
|
61
|
-
number: corrigendum[:number],
|
62
|
-
year: corrigendum[:year],
|
63
|
-
typed_stage: corrigendum[:stage] && convert_stage(corrigendum[:stage]),
|
64
|
-
iteration: corrigendum[:iteration])
|
20
|
+
if supplement[:typed_stage]
|
21
|
+
supplement.merge(
|
22
|
+
case supplement[:typed_stage]
|
23
|
+
when "PDAM"
|
24
|
+
{ typed_stage: "CD", type: "Amd" }
|
25
|
+
when "pDCOR"
|
26
|
+
{ typed_stage: "CD", type: "Cor" }
|
27
|
+
else
|
28
|
+
{}
|
29
|
+
end
|
30
|
+
)
|
31
|
+
else
|
32
|
+
supplement
|
33
|
+
end
|
65
34
|
end
|
66
35
|
context
|
67
36
|
end
|
@@ -77,98 +46,113 @@ module Pubid::Iso
|
|
77
46
|
end
|
78
47
|
|
79
48
|
rule(type: simple(:type)) do
|
80
|
-
russian_type = Renderer::
|
81
|
-
{ type:
|
49
|
+
russian_type = Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:type].key(type.to_s)
|
50
|
+
{ type: russian_type&.downcase&.to_sym ||
|
82
51
|
case type
|
83
52
|
# XXX: can't put 2 alternative Russian translations to dictionary, temporary hack
|
84
|
-
when "GUIDE", "Guide", "
|
53
|
+
when "GUIDE", "Guide", "Руководство"
|
85
54
|
:guide
|
86
55
|
when "ТС", "TS"
|
87
56
|
:ts
|
88
57
|
when "ТО", "TR"
|
89
58
|
:tr
|
90
|
-
when "Directives Part", "Directives, Part", "Directives,"
|
59
|
+
when "Directives Part", "Directives, Part", "Directives,", "DIR"
|
91
60
|
:dir
|
92
61
|
when "PAS"
|
93
62
|
:pas
|
94
63
|
when "DPAS"
|
95
64
|
:dpas
|
96
|
-
when "
|
97
|
-
:
|
65
|
+
when "R"
|
66
|
+
:r
|
98
67
|
else
|
99
68
|
type
|
100
|
-
end
|
69
|
+
end }
|
70
|
+
end
|
71
|
+
|
72
|
+
rule(tctype: subtree(:tctype)) do |context|
|
73
|
+
context[:type] = :tc
|
74
|
+
context
|
101
75
|
end
|
102
76
|
|
103
77
|
rule(copublisher: simple(:copublisher)) do
|
104
|
-
russian_copublisher = Renderer::
|
78
|
+
russian_copublisher = Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:publisher].key(copublisher.to_s)
|
105
79
|
{ copublisher: russian_copublisher&.to_s ||
|
106
80
|
case copublisher
|
107
81
|
when "CEI"
|
108
82
|
"IEC"
|
109
83
|
else
|
110
|
-
copublisher
|
84
|
+
copublisher.to_s
|
111
85
|
end
|
112
86
|
}
|
113
87
|
end
|
114
88
|
|
115
89
|
rule(publisher: simple(:publisher)) do
|
116
|
-
russian_publisher = Renderer::
|
90
|
+
russian_publisher = Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:publisher].key(publisher.to_s)
|
117
91
|
{ publisher: russian_publisher&.to_s || publisher }
|
118
92
|
end
|
119
93
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
#
|
124
|
-
rule(publisher: simple(:publisher), supplement: subtree(:supplement)) do |context|
|
125
|
-
context[:supplement] =
|
126
|
-
Supplement.new(number: context[:supplement][:number],
|
127
|
-
year: context[:supplement][:year],
|
128
|
-
publisher: context[:supplement][:publisher],
|
129
|
-
edition: context[:supplement][:edition])
|
94
|
+
rule(joint_document: subtree(:joint_document)) do |context|
|
95
|
+
context[:joint_document] =
|
96
|
+
Identifier.create(**context[:joint_document])
|
130
97
|
context
|
131
98
|
end
|
132
99
|
|
133
|
-
rule(
|
134
|
-
context[:
|
135
|
-
|
136
|
-
|
137
|
-
publisher: context[:supplement][:publisher],
|
138
|
-
edition: context[:supplement][:edition])
|
139
|
-
context
|
100
|
+
rule(dir_joint_document: subtree(:dir_joint_document)) do |context|
|
101
|
+
context[:joint_document] =
|
102
|
+
Identifier::Base.transform(**(context[:dir_joint_document].merge(type: :dir)))
|
103
|
+
context.select { |k, v| k != :dir_joint_document }
|
140
104
|
end
|
141
105
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
106
|
+
|
107
|
+
rule(roman_numerals: simple(:roman_numerals)) do |context|
|
108
|
+
roman_to_int(context[:roman_numerals])
|
109
|
+
# case roman_numerals
|
110
|
+
# when "III"
|
111
|
+
# 3
|
112
|
+
# else
|
113
|
+
# nil
|
114
|
+
# end
|
115
|
+
end
|
116
|
+
|
117
|
+
ROMAN_TO_INT = {
|
118
|
+
"I" => 1,
|
119
|
+
"V" => 5,
|
120
|
+
"X" => 10,
|
121
|
+
"L" => 50,
|
122
|
+
"C" => 100,
|
123
|
+
"D" => 500,
|
124
|
+
"M" => 1000,
|
125
|
+
}
|
126
|
+
|
127
|
+
def self.roman_to_int(roman)
|
128
|
+
sum = ROMAN_TO_INT[roman.to_s[0]]
|
129
|
+
roman.to_s.chars.each_cons(2) do |c1, c2|
|
130
|
+
sum += ROMAN_TO_INT[c2]
|
131
|
+
sum -= ROMAN_TO_INT[c1] * 2 if ROMAN_TO_INT[c1] < ROMAN_TO_INT[c2]
|
132
|
+
end
|
133
|
+
sum
|
146
134
|
end
|
147
135
|
|
148
136
|
def self.convert_stage(code)
|
149
|
-
russian_code = Renderer::
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
code
|
169
|
-
end
|
170
|
-
russian_code || code
|
171
|
-
# Stage.new(abbr: (russian_code || code))
|
137
|
+
russian_code = Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:stage].key(code.to_s)
|
138
|
+
return { stage: russian_code } if russian_code
|
139
|
+
|
140
|
+
case code
|
141
|
+
when "NWIP"
|
142
|
+
{ stage: "NP" }
|
143
|
+
when "D", "FPD"
|
144
|
+
{ stage: "DIS" }
|
145
|
+
when "FD", "F"
|
146
|
+
{ stage: "FDIS" }
|
147
|
+
when "Fpr"
|
148
|
+
{ stage: "PRF" }
|
149
|
+
when "PDTR"
|
150
|
+
{ stage: "CD", type: "TR" }
|
151
|
+
when "PDTS"
|
152
|
+
{ stage: "CD", type: "TS" }
|
153
|
+
else
|
154
|
+
{ stage: code }
|
155
|
+
end
|
172
156
|
end
|
173
157
|
|
174
158
|
def self.convert_language(code)
|
data/lib/pubid/iso/type.rb
CHANGED
@@ -41,11 +41,17 @@ module Pubid::Iso
|
|
41
41
|
amd: {
|
42
42
|
short: "Amd",
|
43
43
|
},
|
44
|
+
r: {
|
45
|
+
long: "Recommendation",
|
46
|
+
short: "R",
|
47
|
+
},
|
44
48
|
}.freeze
|
45
49
|
|
46
50
|
# Create new type
|
47
51
|
# @param type [Symbol]
|
48
|
-
def initialize(type)
|
52
|
+
def initialize(type = :is)
|
53
|
+
type = type.to_s.downcase.to_sym unless type.is_a?(Symbol)
|
54
|
+
|
49
55
|
raise Errors::WrongTypeError, "#{type} type is not available" unless TYPE_NAMES.key?(type)
|
50
56
|
|
51
57
|
@type = type
|
@@ -65,6 +71,8 @@ module Pubid::Iso
|
|
65
71
|
def ==(other)
|
66
72
|
return type == other if other.is_a?(Symbol)
|
67
73
|
|
74
|
+
return false if other.nil?
|
75
|
+
|
68
76
|
type == other.type
|
69
77
|
end
|
70
78
|
|
data/lib/pubid/iso/version.rb
CHANGED
data/lib/pubid/iso.rb
CHANGED
@@ -1,30 +1,36 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "parslet"
|
4
|
+
require "yaml"
|
4
5
|
|
5
6
|
module Pubid
|
6
7
|
module Iso
|
7
|
-
|
8
|
+
UPDATE_CODES = YAML.load_file(File.join(File.dirname(__FILE__), "../../update_codes.yaml"))
|
8
9
|
end
|
9
10
|
end
|
10
11
|
|
12
|
+
STAGES_CONFIG = YAML.load_file(File.join(File.dirname(__FILE__), "../../stages.yaml"))
|
13
|
+
|
11
14
|
require "pubid-core"
|
12
15
|
require_relative "iso/errors"
|
13
16
|
require_relative "iso/stage"
|
14
17
|
require_relative "iso/type"
|
15
|
-
require_relative "iso/typed_stage"
|
16
18
|
require_relative "iso/harmonized_stage_code"
|
17
|
-
require_relative "iso/parser"
|
18
19
|
require_relative "iso/transformer"
|
19
|
-
require_relative "iso/supplement"
|
20
|
-
require_relative "iso/amendment"
|
21
|
-
require_relative "iso/corrigendum"
|
22
20
|
require_relative "iso/identifier"
|
23
|
-
require_relative "iso/
|
24
|
-
require_relative "iso/
|
25
|
-
require_relative "iso/
|
26
|
-
require_relative "iso/
|
27
|
-
require_relative "iso/
|
28
|
-
require_relative "iso/
|
29
|
-
require_relative "iso/
|
30
|
-
require_relative "iso/
|
21
|
+
require_relative "iso/identifier/base"
|
22
|
+
require_relative "iso/identifier/international_standard"
|
23
|
+
require_relative "iso/identifier/international_standardized_profile"
|
24
|
+
require_relative "iso/identifier/technical_report"
|
25
|
+
require_relative "iso/identifier/technical_specification"
|
26
|
+
require_relative "iso/identifier/technical_committee"
|
27
|
+
require_relative "iso/identifier/supplement"
|
28
|
+
require_relative "iso/identifier/amendment"
|
29
|
+
require_relative "iso/identifier/corrigendum"
|
30
|
+
require_relative "iso/identifier/publicly_available_specification"
|
31
|
+
require_relative "iso/identifier/directives"
|
32
|
+
require_relative "iso/identifier/guide"
|
33
|
+
require_relative "iso/identifier/recommendation"
|
34
|
+
require_relative "iso/identifier/technology_trends_assessments"
|
35
|
+
require_relative "iso/identifier/international_workshop_agreement"
|
36
|
+
require_relative "iso/parser"
|
data/stages.yaml
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
abbreviations:
|
2
|
+
PWI: ["00.00", "00.20", "00.60", "00.98", "00.99"]
|
3
|
+
NP: ["10.00", "10.20", "10.60", "10.98", "10.92"]
|
4
|
+
AWI: ["20.00", "10.99"]
|
5
|
+
WD: ["20.20", "20.60", "20.98", "20.99"]
|
6
|
+
CD: ["30.00", "30.20", "30.60", "30.92", "30.98", "30.99"]
|
7
|
+
PRF: ["50.00", "50.20", "50.60", "50.92", "50.98", "50.99"]
|
8
|
+
|
9
|
+
names:
|
10
|
+
WD: Working Draft
|
11
|
+
PWI: Preliminary Work Item
|
12
|
+
NP: New Proposal
|
13
|
+
CD: Committee Draft
|
14
|
+
PRF: Proof of a new
|
15
|
+
|
16
|
+
codes_description:
|
17
|
+
"00.00": Proposal for new project received
|
18
|
+
"00.20": Proposal for new project under review
|
19
|
+
"00.60": Close of review
|
20
|
+
"00.98": Proposal for new project abandoned
|
21
|
+
"00.99": Approval to ballot proposal for new project
|
22
|
+
"10.00": Proposal for new project registered
|
23
|
+
"10.20": New project ballot initiated
|
24
|
+
"10.60": Close of voting
|
25
|
+
"10.92": Proposal returned to submitter for further definition
|
26
|
+
"10.98": New project rejected
|
27
|
+
"10.99": New project approved
|
28
|
+
"20.00": New project registered in TC/SC work programme
|
29
|
+
"20.20": Working draft (WD) study initiated
|
30
|
+
"20.60": Close of comment period
|
31
|
+
"20.98": Project deleted
|
32
|
+
"20.99": WD approved for registration as CD
|
33
|
+
"30.00": Committee draft (CD) registered
|
34
|
+
"30.20": CD study/ballot initiated
|
35
|
+
"30.60": Close of voting/ comment period
|
36
|
+
"30.92": CD referred back to Working Group
|
37
|
+
"30.98": Project deleted
|
38
|
+
"30.99": CD approved for registration as DIS
|
39
|
+
"40.00": DIS registered
|
40
|
+
"40.20": "DIS ballot initiated: 12 weeks"
|
41
|
+
"40.60": Close of voting
|
42
|
+
"40.93": "Full report circulated: decision for new DIS ballot"
|
43
|
+
"40.98": Project deleted
|
44
|
+
"40.92": "Full report circulated: DIS referred back to TC or SC"
|
45
|
+
"40.99": "Full report circulated: DIS approved for registration as FDIS"
|
46
|
+
"50.00": Final text received or FDIS registered for formal approval
|
47
|
+
"50.20": "Proof sent to secretariat or FDIS ballot initiated: 8 weeks"
|
48
|
+
"50.60": Close of voting. Proof returned by secretariat
|
49
|
+
"50.92": FDIS or proof referred back to TC or SC
|
50
|
+
"50.98": Project deleted
|
51
|
+
"50.99": FDIS or proof approved for publication
|
52
|
+
"60.00": International Standard under publication
|
53
|
+
"60.60": International Standard published
|
54
|
+
"90.20": International Standard under systematic review
|
55
|
+
"90.60": Close of review
|
56
|
+
"90.92": International Standard to be revised
|
57
|
+
"90.93": International Standard confirmed
|
58
|
+
"90.99": Withdrawal of International Standard proposed by TC or SC
|
59
|
+
"95.20": Withdrawal ballot initiated
|
60
|
+
"95.60": Close of voting
|
61
|
+
"95.92": Decision not to withdraw International Standard
|
62
|
+
"95.99": Withdrawal of International Standard
|
63
|
+
|
64
|
+
stage_codes:
|
65
|
+
preliminary: "00"
|
66
|
+
proposal: "10"
|
67
|
+
preparatory: "20"
|
68
|
+
committee: "30"
|
69
|
+
enquiry: "40"
|
70
|
+
approval: "50"
|
71
|
+
publication: "60"
|
72
|
+
review: "90"
|
73
|
+
withdrawal: "95"
|
74
|
+
|
75
|
+
substage_codes:
|
76
|
+
registration: "00"
|
77
|
+
start_of_main_action: "20"
|
78
|
+
completion_of_main_action: "60"
|
79
|
+
repeat_an_earlier_phase: "92"
|
80
|
+
repeat_current_phase: "93"
|
81
|
+
abandon: "98"
|
82
|
+
proceed: "99"
|
83
|
+
|
84
|
+
draft_codes: ["00.00", "00.20", "00.60", "00.99", "10.00", "10.20", "10.60", "10.92",
|
85
|
+
"10.99", "20.00", "20.20", "20.60", "20.99", "30.00",
|
86
|
+
"30.20", "30.60", "30.92", "30.99", "40.00", "40.20", "40.60", "40.92",
|
87
|
+
"40.93", "40.99", "50.00", "50.20", "50.60", "50.92", "50.99"]
|
88
|
+
|
89
|
+
canceled_codes: ["00.98", "10.98", "20.98", "30.98", "40.98", "50.98", "95.99"]
|
90
|
+
published_codes: ["60.00", "60.60", "90.20", "90.60", "90.92", "90.93", "90.99", "95.20", "95.60", "95.92"]
|
91
|
+
|
92
|
+
|
93
|
+
|
data/update_codes.yaml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ISO/R 657/IV: ISO/R 657-4:1969
|