pubid-iso 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 +88 -104
- data/lib/pubid/iso/type.rb +3 -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,11 +46,11 @@ 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
|
@@ -97,78 +66,93 @@ module Pubid::Iso
|
|
97
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
@@ -49,7 +49,9 @@ module Pubid::Iso
|
|
49
49
|
|
50
50
|
# Create new type
|
51
51
|
# @param type [Symbol]
|
52
|
-
def initialize(type)
|
52
|
+
def initialize(type = :is)
|
53
|
+
type = type.to_s.downcase.to_sym unless type.is_a?(Symbol)
|
54
|
+
|
53
55
|
raise Errors::WrongTypeError, "#{type} type is not available" unless TYPE_NAMES.key?(type)
|
54
56
|
|
55
57
|
@type = type
|
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
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubid-iso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
103
|
+
version: 1.5.1
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
110
|
+
version: 1.5.1
|
111
111
|
description: Library to generate, parse and manipulate ISO PubID.
|
112
112
|
email:
|
113
113
|
- open.source@ribose.com
|
@@ -121,26 +121,52 @@ files:
|
|
121
121
|
- README.adoc
|
122
122
|
- lib/pubid-iso.rb
|
123
123
|
- lib/pubid/iso.rb
|
124
|
-
- lib/pubid/iso/amendment.rb
|
125
|
-
- lib/pubid/iso/corrigendum.rb
|
126
124
|
- lib/pubid/iso/errors.rb
|
127
125
|
- lib/pubid/iso/harmonized_stage_code.rb
|
128
126
|
- lib/pubid/iso/identifier.rb
|
127
|
+
- lib/pubid/iso/identifier/amendment.rb
|
128
|
+
- lib/pubid/iso/identifier/base.rb
|
129
|
+
- lib/pubid/iso/identifier/corrigendum.rb
|
130
|
+
- lib/pubid/iso/identifier/directives.rb
|
131
|
+
- lib/pubid/iso/identifier/guide.rb
|
132
|
+
- lib/pubid/iso/identifier/international_standard.rb
|
133
|
+
- lib/pubid/iso/identifier/international_standardized_profile.rb
|
134
|
+
- lib/pubid/iso/identifier/international_workshop_agreement.rb
|
135
|
+
- lib/pubid/iso/identifier/publicly_available_specification.rb
|
136
|
+
- lib/pubid/iso/identifier/recommendation.rb
|
137
|
+
- lib/pubid/iso/identifier/supplement.rb
|
138
|
+
- lib/pubid/iso/identifier/technical_committee.rb
|
139
|
+
- lib/pubid/iso/identifier/technical_report.rb
|
140
|
+
- lib/pubid/iso/identifier/technical_specification.rb
|
141
|
+
- lib/pubid/iso/identifier/technology_trends_assessments.rb
|
129
142
|
- lib/pubid/iso/parser.rb
|
143
|
+
- lib/pubid/iso/renderer/amendment.rb
|
130
144
|
- lib/pubid/iso/renderer/base.rb
|
145
|
+
- lib/pubid/iso/renderer/corrigendum.rb
|
131
146
|
- lib/pubid/iso/renderer/dir.rb
|
132
|
-
- lib/pubid/iso/renderer/
|
133
|
-
- lib/pubid/iso/renderer/
|
134
|
-
- lib/pubid/iso/renderer/
|
147
|
+
- lib/pubid/iso/renderer/guide.rb
|
148
|
+
- lib/pubid/iso/renderer/international_standard.rb
|
149
|
+
- lib/pubid/iso/renderer/international_standardized_profile.rb
|
150
|
+
- lib/pubid/iso/renderer/international_workshop_agreement.rb
|
151
|
+
- lib/pubid/iso/renderer/publicly_available_specification.rb
|
152
|
+
- lib/pubid/iso/renderer/recommendation.rb
|
153
|
+
- lib/pubid/iso/renderer/supplement.rb
|
154
|
+
- lib/pubid/iso/renderer/technical_committee.rb
|
155
|
+
- lib/pubid/iso/renderer/technical_report.rb
|
156
|
+
- lib/pubid/iso/renderer/technical_specification.rb
|
157
|
+
- lib/pubid/iso/renderer/technology_trends_assessments.rb
|
158
|
+
- lib/pubid/iso/renderer/urn-amendment.rb
|
159
|
+
- lib/pubid/iso/renderer/urn-corrigendum.rb
|
135
160
|
- lib/pubid/iso/renderer/urn-dir.rb
|
161
|
+
- lib/pubid/iso/renderer/urn-supplement.rb
|
136
162
|
- lib/pubid/iso/renderer/urn-tc.rb
|
137
163
|
- lib/pubid/iso/renderer/urn.rb
|
138
164
|
- lib/pubid/iso/stage.rb
|
139
|
-
- lib/pubid/iso/supplement.rb
|
140
165
|
- lib/pubid/iso/transformer.rb
|
141
166
|
- lib/pubid/iso/type.rb
|
142
|
-
- lib/pubid/iso/typed_stage.rb
|
143
167
|
- lib/pubid/iso/version.rb
|
168
|
+
- stages.yaml
|
169
|
+
- update_codes.yaml
|
144
170
|
homepage: https://github.com/metanorma/pubid-iso
|
145
171
|
licenses:
|
146
172
|
- BSD-2-Clause
|