pubid-iso 0.1.10 → 0.1.11
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 +19 -0
- data/lib/pubid/iso/amendment.rb +28 -3
- data/lib/pubid/iso/corrigendum.rb +20 -3
- data/lib/pubid/iso/errors.rb +6 -0
- data/lib/pubid/iso/harmonized_stage_code.rb +96 -0
- data/lib/pubid/iso/identifier.rb +93 -17
- data/lib/pubid/iso/parser.rb +30 -39
- data/lib/pubid/iso/renderer/base.rb +75 -0
- data/lib/pubid/iso/renderer/dir.rb +3 -3
- data/lib/pubid/iso/renderer/french.rb +2 -2
- data/lib/pubid/iso/renderer/russian.rb +3 -3
- data/lib/pubid/iso/renderer/tc.rb +2 -2
- data/lib/pubid/iso/renderer/urn-dir.rb +3 -5
- data/lib/pubid/iso/renderer/urn-tc.rb +2 -2
- data/lib/pubid/iso/renderer/urn.rb +22 -0
- data/lib/pubid/iso/stage.rb +33 -0
- data/lib/pubid/iso/supplement.rb +36 -6
- data/lib/pubid/iso/transformer.rb +42 -24
- data/lib/pubid/iso/version.rb +1 -1
- data/lib/pubid/iso.rb +4 -0
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5970af41e67f70e22e928d11ac1eabd71d42ca1855f5d3d6254dea8f98844aab
|
4
|
+
data.tar.gz: fface01211f338c08b5ab853be7a48573400e4ca8c290bca9f52e9f6d9361c89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b4431cc30c76062a19fc1531ad3e2b57ec2b31b0fc9604672ad9a6a3a5908fc756c256f5552d94b0165b36f5032df084250b68fe7c884435339e6628ec365ba
|
7
|
+
data.tar.gz: b0d2a810b02ceff7044fe35a88a81e3ef2c5feb0a39a8592655136d4b9f0bd6d3ab01e3fb325a743843e057cc816930bfeb09f6cb0d0b45c586b6a8f127bee9d
|
data/README.adoc
CHANGED
@@ -12,6 +12,25 @@ identifiers.
|
|
12
12
|
. generate language specific PubID
|
13
13
|
. generate dated vs undated PubIDs
|
14
14
|
|
15
|
+
=== Usage
|
16
|
+
|
17
|
+
|
18
|
+
[source,ruby]
|
19
|
+
----
|
20
|
+
require "pubid-iso"
|
21
|
+
|
22
|
+
pubid = Pubid::Iso::Identifier.new(publisher: "ISO", number: 123)
|
23
|
+
pubid.to_s
|
24
|
+
|
25
|
+
=> "ISO 1234"
|
26
|
+
----
|
27
|
+
|
28
|
+
Available attributes:
|
29
|
+
|
30
|
+
`number`, `publisher`, `copublisher`, `part`, `type`, `year`, `edition`, `language`, `amendments`,
|
31
|
+
`corrigendums`, `stage`, `substage`, `iteration`, `supplements`, `amendment_stage`, `corrigendum_stage`,
|
32
|
+
`joint_document`, `tctype`, `sctype`, `wgtype`, `tcnumber`, `scnumber`, `wgnumber`, `urn_stage`,
|
33
|
+
`dir`, `dirtype`, `supplement`
|
15
34
|
|
16
35
|
== Elements of the PubID
|
17
36
|
|
data/lib/pubid/iso/amendment.rb
CHANGED
@@ -1,9 +1,34 @@
|
|
1
1
|
module Pubid::Iso
|
2
2
|
class Amendment < Supplement
|
3
|
-
|
3
|
+
# @param stage_format_long [Boolean] long or short format for stage rendering
|
4
|
+
# @param with_date [Boolean] include date
|
5
|
+
def render_pubid(stage_format_long = true, with_date = true)
|
4
6
|
stage = render_pubid_stage
|
5
|
-
|
6
|
-
|
7
|
+
pubid_number = render_pubid_number(with_date: with_date)
|
8
|
+
case stage.to_s
|
9
|
+
when "DIS"
|
10
|
+
if stage_format_long
|
11
|
+
"/DAmd #{pubid_number}"
|
12
|
+
else
|
13
|
+
"/DAM #{pubid_number}"
|
14
|
+
end
|
15
|
+
when "FDIS"
|
16
|
+
if stage_format_long
|
17
|
+
"/FDAmd #{pubid_number}"
|
18
|
+
else
|
19
|
+
"/FDAM #{pubid_number}"
|
20
|
+
end
|
21
|
+
when "CD"
|
22
|
+
if stage_format_long
|
23
|
+
"/CD Amd #{pubid_number}"
|
24
|
+
else
|
25
|
+
"/CDAM #{pubid_number}"
|
26
|
+
end
|
27
|
+
when ""
|
28
|
+
"/Amd #{pubid_number}"
|
29
|
+
else
|
30
|
+
"/#{stage} Amd #{pubid_number}"
|
31
|
+
end
|
7
32
|
end
|
8
33
|
|
9
34
|
def render_urn
|
@@ -1,9 +1,26 @@
|
|
1
1
|
module Pubid::Iso
|
2
2
|
class Corrigendum < Supplement
|
3
|
-
def render_pubid
|
3
|
+
def render_pubid(stage_format_long = true, with_date = true)
|
4
4
|
stage = render_pubid_stage
|
5
|
-
|
6
|
-
|
5
|
+
pubid_number = render_pubid_number(with_date: with_date)
|
6
|
+
case stage.to_s
|
7
|
+
when "DIS"
|
8
|
+
if stage_format_long
|
9
|
+
"/DCor #{pubid_number}"
|
10
|
+
else
|
11
|
+
"/DCOR #{pubid_number}"
|
12
|
+
end
|
13
|
+
when "FDIS"
|
14
|
+
if stage_format_long
|
15
|
+
"/FDCor #{pubid_number}"
|
16
|
+
else
|
17
|
+
"/FDCOR #{pubid_number}"
|
18
|
+
end
|
19
|
+
when ""
|
20
|
+
"/Cor #{pubid_number}"
|
21
|
+
else
|
22
|
+
"/#{stage} Cor #{pubid_number}"
|
23
|
+
end
|
7
24
|
end
|
8
25
|
|
9
26
|
def render_urn
|
data/lib/pubid/iso/errors.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
module Pubid::Iso
|
2
2
|
module Errors
|
3
3
|
class ParseError < StandardError; end
|
4
|
+
class PublishedIterationError < StandardError; end
|
5
|
+
class HarmonizedStageCodeInvalidError < StandardError; end
|
6
|
+
class CodeInvalidError < StandardError; end
|
7
|
+
class IsStageIterationError < StandardError; end
|
8
|
+
class WrongFormat < StandardError; end
|
9
|
+
class SupplementWithoutYearError < StandardError; end
|
4
10
|
end
|
5
11
|
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
module Pubid::Iso
|
2
|
+
class HarmonizedStageCode
|
3
|
+
include Comparable
|
4
|
+
attr_accessor :stage, :substage
|
5
|
+
|
6
|
+
DESCRIPTIONS = {
|
7
|
+
"00.00" => "Proposal for new project received",
|
8
|
+
"00.20" => "Proposal for new project under review",
|
9
|
+
"00.60" => "Close of review",
|
10
|
+
"00.98" => "Proposal for new project abandoned",
|
11
|
+
"00.99" => "Approval to ballot proposal for new project",
|
12
|
+
"10.00" => "Proposal for new project registered",
|
13
|
+
"10.20" => "New project ballot initiated",
|
14
|
+
"10.60" => "Close of voting",
|
15
|
+
"10.92" => "Proposal returned to submitter for further definition",
|
16
|
+
"10.98" => "New project rejected",
|
17
|
+
"10.99" => "New project approved",
|
18
|
+
"20.00" => "New project registered in TC/SC work programme",
|
19
|
+
"20.20" => "Working draft (WD) study initiated",
|
20
|
+
"20.60" => "Close of comment period",
|
21
|
+
"20.98" => "Project deleted",
|
22
|
+
"20.99" => "WD approved for registration as CD",
|
23
|
+
"30.00" => "Committee draft (CD) registered",
|
24
|
+
"30.20" => "CD study/ballot initiated",
|
25
|
+
"30.60" => "Close of voting/ comment period",
|
26
|
+
"30.92" => "CD referred back to Working Group",
|
27
|
+
"30.98" => "Project deleted",
|
28
|
+
"30.99" => "CD approved for registration as DIS",
|
29
|
+
"40.00" => "DIS registered",
|
30
|
+
"40.20" => "DIS ballot initiated: 12 weeks",
|
31
|
+
"40.60" => "Close of voting",
|
32
|
+
"40.92" => "Full report circulated: DIS referred back to TC or SC",
|
33
|
+
"40.93" => "Full report circulated: decision for new DIS ballot",
|
34
|
+
"40.98" => "Project deleted",
|
35
|
+
"40.99" => "Full report circulated: DIS approved for registration as FDIS",
|
36
|
+
"50.00" => "Final text received or FDIS registered for formal approval",
|
37
|
+
"50.20" => "Proof sent to secretariat or FDIS ballot initiated: 8 weeks",
|
38
|
+
"50.60" => "Close of voting. Proof returned by secretariat",
|
39
|
+
"50.92" => "FDIS or proof referred back to TC or SC",
|
40
|
+
"50.98" => "Project deleted",
|
41
|
+
"50.99" => "FDIS or proof approved for publication",
|
42
|
+
"60.00" => "International Standard under publication",
|
43
|
+
"60.60" => "International Standard published",
|
44
|
+
"90.20" => "International Standard under systematic review",
|
45
|
+
"90.60" => "Close of review",
|
46
|
+
"90.92" => "International Standard to be revised",
|
47
|
+
"90.93" => "International Standard confirmed",
|
48
|
+
"90.99" => "Withdrawal of International Standard proposed by TC or SC",
|
49
|
+
"95.20" => "Withdrawal ballot initiated",
|
50
|
+
"95.60" => "Close of voting",
|
51
|
+
"95.92" => "Decision not to withdraw International Standard",
|
52
|
+
"95.99" => "Withdrawal of International Standard"
|
53
|
+
}
|
54
|
+
|
55
|
+
STAGES_NAMES = {
|
56
|
+
approval: "50"
|
57
|
+
}
|
58
|
+
|
59
|
+
SUBSTAGES_NAMES = {
|
60
|
+
registration: "00"
|
61
|
+
}
|
62
|
+
|
63
|
+
def initialize(stage, substage = nil)
|
64
|
+
# when stage is stage name
|
65
|
+
if STAGES_NAMES.key?(stage)
|
66
|
+
@stage = STAGES_NAMES[stage]
|
67
|
+
@substage = SUBSTAGES_NAMES[substage]
|
68
|
+
else
|
69
|
+
# stage is number
|
70
|
+
validate_stage(stage, substage)
|
71
|
+
@stage, @substage = stage, substage
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def validate_stage(stage, substage)
|
76
|
+
# raise an error if stage is not number
|
77
|
+
raise Errors::HarmonizedStageCodeInvalidError if Integer(stage).nil?
|
78
|
+
|
79
|
+
# raise an error when substage wrong
|
80
|
+
raise Errors::HarmonizedStageCodeInvalidError if stage == "90" && substage == "00"
|
81
|
+
# raise Errors::HarmonizedStageCodeNotValidError if stage.to_i
|
82
|
+
end
|
83
|
+
|
84
|
+
def to_s
|
85
|
+
"#{stage}.#{substage}"
|
86
|
+
end
|
87
|
+
|
88
|
+
def ==(other)
|
89
|
+
stage == other.stage && substage == other.substage
|
90
|
+
end
|
91
|
+
|
92
|
+
def description
|
93
|
+
DESCRIPTIONS[to_s]
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/lib/pubid/iso/identifier.rb
CHANGED
@@ -1,18 +1,62 @@
|
|
1
1
|
module Pubid::Iso
|
2
2
|
class Identifier < Pubid::Core::Identifier
|
3
|
-
attr_accessor :stage,
|
4
|
-
:iteration, :
|
5
|
-
:amendment_stage, :corrigendum_stage, :joint_document,
|
3
|
+
attr_accessor :stage,
|
4
|
+
:iteration, :joint_document,
|
6
5
|
:tctype, :sctype, :wgtype, :tcnumber, :scnumber, :wgnumber,
|
7
|
-
:urn_stage, :
|
6
|
+
:urn_stage, :dirtype,
|
7
|
+
# supplement for DIR type identifiers
|
8
|
+
:supplement
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
# Creates new identifier from options provided, includes options from
|
11
|
+
# Pubid::Core::Identifier#initialize
|
12
|
+
#
|
13
|
+
# @param stage [Stage] stage
|
14
|
+
# @param urn_stage [Float] numeric stage for URN rendering
|
15
|
+
# @param iteration [Integer] document iteration, eg. "1", "2", "3"
|
16
|
+
# @param joint_document [Identifier] joint document
|
17
|
+
# @param supplement [Supplement] supplement
|
18
|
+
# @param tctype [String] Technical Committee type, eg. "TC", "JTC"
|
19
|
+
# @param sctype [String] TC subsommittee, eg. "SC"
|
20
|
+
# @param wgtype [String] TC working group type, eg. "AG", "AHG"
|
21
|
+
# @param tcnumber [Integer] Technical Committee number, eg. "1", "2"
|
22
|
+
# @param scnumber [Integer] Subsommittee number, eg. "1", "2"
|
23
|
+
# @param wgnumber [Integer] Working group number, eg. "1", "2"
|
24
|
+
# @param dirtype [String] Directives document type, eg. "JTC"
|
25
|
+
# @see Supplement
|
26
|
+
# @see Identifier
|
27
|
+
# @see Pubid::Core::Identifier
|
28
|
+
# @see Parser
|
29
|
+
#
|
30
|
+
def initialize(publisher: "ISO", number: nil, stage: nil, iteration: nil, supplement: nil,
|
31
|
+
joint_document: nil, urn_stage: nil,
|
32
|
+
tctype: nil, sctype: nil, wgtype: nil, tcnumber: nil,
|
33
|
+
scnumber: nil, wgnumber:nil,
|
34
|
+
dir: nil, dirtype: nil, year: nil, amendments: nil,
|
35
|
+
corrigendums: nil, **opts)
|
36
|
+
super(**opts.merge(number: number, publisher: publisher, year: year,
|
37
|
+
amendments: amendments, corrigendums: corrigendums))
|
38
|
+
|
39
|
+
if (amendments || corrigendums) && year.nil?
|
40
|
+
raise Errors::SupplementWithoutYearError, "Cannot apply supplement to document without edition year"
|
41
|
+
end
|
42
|
+
if stage
|
43
|
+
if stage.abbr == "IS" && iteration
|
44
|
+
raise Errors::IsStageIterationError, "IS stage document cannot have iteration"
|
45
|
+
end
|
46
|
+
@stage = stage
|
47
|
+
end
|
48
|
+
@iteration = iteration.to_i if iteration
|
49
|
+
@supplement = supplement if supplement
|
50
|
+
@joint_document = joint_document if joint_document
|
51
|
+
@urn_stage = urn_stage if urn_stage
|
52
|
+
@tctype = tctype if tctype
|
53
|
+
@sctype = sctype.to_s if sctype
|
54
|
+
@wgtype = wgtype.to_s if wgtype
|
55
|
+
@tcnumber = tcnumber.to_s if tcnumber
|
56
|
+
@scnumber = scnumber.to_s if scnumber
|
57
|
+
@wgnumber = wgnumber.to_s if wgnumber
|
58
|
+
@dir = dir.to_s if dir
|
59
|
+
@dirtype = dirtype.to_s if dirtype
|
16
60
|
end
|
17
61
|
|
18
62
|
def self.parse_from_title(title)
|
@@ -40,14 +84,45 @@ module Pubid::Iso
|
|
40
84
|
def get_transformer_class
|
41
85
|
Transformer
|
42
86
|
end
|
87
|
+
|
88
|
+
def get_renderer_class
|
89
|
+
Renderer::Base
|
90
|
+
end
|
43
91
|
end
|
44
92
|
|
45
93
|
def urn
|
46
|
-
(@tctype && Renderer::UrnTc || @
|
94
|
+
(@tctype && Renderer::UrnTc || @type == "DIR" && Renderer::UrnDir || Pubid::Iso::Renderer::Urn).new(get_params).render
|
95
|
+
end
|
96
|
+
|
97
|
+
def formatted(format)
|
98
|
+
case format
|
99
|
+
when :ref_num_short
|
100
|
+
to_s(with_language_code: :single, stage_format_long: false)
|
101
|
+
when :ref_num_long
|
102
|
+
to_s(with_language_code: :iso, stage_format_long: true)
|
103
|
+
when :ref_dated
|
104
|
+
to_s(with_language_code: :none, stage_format_long: false)
|
105
|
+
when :ref_dated_long
|
106
|
+
to_s(with_language_code: :none, stage_format_long: true)
|
107
|
+
when :ref_undated
|
108
|
+
to_s(with_language_code: :none, stage_format_long: false, with_date: false)
|
109
|
+
when :ref_undated_long
|
110
|
+
to_s(with_language_code: :none, stage_format_long: true, with_date: false)
|
111
|
+
else
|
112
|
+
raise Errors::WrongFormat, "#{format} is not available"
|
113
|
+
end
|
47
114
|
end
|
48
115
|
|
49
|
-
|
50
|
-
|
116
|
+
# Renders pubid identifier
|
117
|
+
#
|
118
|
+
# @param lang [:french,:russian] use language specific renderer
|
119
|
+
# @param with_date [Boolean] render identifier with date
|
120
|
+
# @param with_language_code [:iso,:single] use iso format or single language code for rendering
|
121
|
+
# @param with_edition [Boolean] render identifier with edition
|
122
|
+
# @param stage_format_long [Boolean] render with long or short stage format
|
123
|
+
# @return [String] pubid identifier
|
124
|
+
def to_s(lang: nil, with_date: true, with_language_code: :iso,
|
125
|
+
with_edition: true, stage_format_long: true)
|
51
126
|
case lang
|
52
127
|
when :french
|
53
128
|
Renderer::French.new(get_params)
|
@@ -56,13 +131,14 @@ module Pubid::Iso
|
|
56
131
|
else
|
57
132
|
if @tctype
|
58
133
|
Renderer::Tc.new(get_params)
|
59
|
-
elsif @
|
134
|
+
elsif @type == "DIR"
|
60
135
|
Renderer::Dir.new(get_params)
|
61
136
|
else
|
62
137
|
self.class.get_renderer_class.new(get_params)
|
63
138
|
end
|
64
|
-
end.render(with_date: with_date, with_language_code: with_language_code
|
65
|
-
|
139
|
+
end.render(with_date: with_date, with_language_code: with_language_code, with_edition: with_edition,
|
140
|
+
stage_format_long: stage_format_long) +
|
141
|
+
if @joint_document && @type != "DIR"
|
66
142
|
"|#{@joint_document}"
|
67
143
|
end.to_s
|
68
144
|
end
|
data/lib/pubid/iso/parser.rb
CHANGED
@@ -1,36 +1,33 @@
|
|
1
1
|
module Pubid::Iso
|
2
2
|
class Parser < Pubid::Core::Parser
|
3
|
+
STAGES = %w[NP NWIP WD CD DIS FDIS PRF IS AWI PWI FPD pD PD FD D F].freeze
|
4
|
+
TYPES = %w[DATA ISP IWA R TTA TS TR PAS Guide GUIDE DIR].freeze
|
5
|
+
|
6
|
+
TCTYPES = ["TC", "JTC", "PC", "IT", "CAB", "CASCO", "COPOLCO",
|
7
|
+
"COUNCIL", "CPSG", "CS", "DEVCO", "GA", "GAAB", "INFCO",
|
8
|
+
"ISOlutions", "ITN", "REMCO", "TMB", "TMBG", "WMO",
|
9
|
+
"DMT", "JCG", "SGPM", "ATMG", "CCCC", "CCCC-TG", "JDMT",
|
10
|
+
"JSAG", "JSCTF-TF", "JTCG", "JTCG-TF", "SAG_Acc", "SAG_CRMI",
|
11
|
+
"SAG_CRMI_CG", "SAG_ESG", "SAG_ESG_CG", "SAG_MRS", "SAG SF", "SAG SF_CG",
|
12
|
+
"SMCC", "STMG", "MENA STAR"].freeze
|
13
|
+
|
14
|
+
WGTYPES = ["AG", "AHG", "AhG", "WG", "JWG", "QC", "TF",
|
15
|
+
"PPC", "CAG", "WG SGDG", "WG SR", "STAR", "STTF", "TIG",
|
16
|
+
"CPAG", "CSC", "ITSAG", "CSC/FIN", "CSC/NOM", "CSC/OVE",
|
17
|
+
"CSC/SP", "CSC/FIN", "JAG"].freeze
|
18
|
+
|
19
|
+
ORGANIZATIONS = %w[IEC IEEE CIW SAE CIE ASME ASTM OECD ISO IWA HL7 CEI].freeze
|
3
20
|
rule(:stage) do
|
4
|
-
Renderer::Russian::STAGE.values
|
5
|
-
# other stages
|
6
|
-
str("NP") | str("NWIP") |
|
7
|
-
str("WD") | str("CD") | str("DIS") | str("FDIS") | str("PRF") |
|
8
|
-
str("IS") | str("AWI") | str("PWI") |
|
9
|
-
# AMD and COR stages
|
10
|
-
str("FPD") | str("pD") | str("PD") | str("FD") | str("D")) do |acc, stage|
|
11
|
-
acc | str(stage)
|
12
|
-
end
|
21
|
+
array_to_str(Renderer::Russian::STAGE.values) | array_to_str(STAGES)
|
13
22
|
end
|
14
23
|
|
15
24
|
rule(:type) do
|
16
|
-
(
|
17
|
-
Renderer::Russian::TYPE.values.reduce(
|
18
|
-
str("DATA") | str("ISP") | str("IWA") | str("R") | str("TTA") |
|
19
|
-
str("TS") | str("TR") | str("PAS") | str("Guide") | str("GUIDE")) do |acc, type|
|
20
|
-
acc | str(type)
|
21
|
-
end
|
22
|
-
).as(:type)
|
25
|
+
(array_to_str(Renderer::Russian::TYPE.values) | array_to_str(TYPES)).as(:type)
|
23
26
|
end
|
24
27
|
|
25
28
|
rule(:tctype) do
|
26
29
|
# tc-types
|
27
|
-
|
28
|
-
str("COUNCIL") | str("CPSG") | str("CS") | str("DEVCO") | str("GA") | str("GAAB") | str("INFCO") |
|
29
|
-
str("ISOlutions") | str("ITN") | str("REMCO") | str("TMB") | str("TMBG") | str("WMO") |
|
30
|
-
str("DMT") | str("JCG") | str("SGPM") | str("ATMG") | str("CCCC") | str("CCCC-TG") | str("JDMT") |
|
31
|
-
str("JSAG") | str("JSCTF-TF") | str("JTCG") | str("JTCG-TF") | str("SAG_Acc") | str("SAG_CRMI") |
|
32
|
-
str("SAG_CRMI_CG") | str("SAG_ESG") | str("SAG_ESG_CG") | str("SAG_MRS") | str("SAG SF") | str("SAG SF_CG") |
|
33
|
-
str("SMCC") | str("STMG") | str("MENA STAR")
|
30
|
+
array_to_str(TCTYPES)
|
34
31
|
end
|
35
32
|
|
36
33
|
rule(:sctype) do
|
@@ -38,10 +35,7 @@ module Pubid::Iso
|
|
38
35
|
end
|
39
36
|
|
40
37
|
rule(:wgtype) do
|
41
|
-
|
42
|
-
str("PPC") | str("CAG") | str("WG SGDG") | str("WG SR") | str("STAR") | str("STTF") | str("TIG") |
|
43
|
-
str("CPAG") | str("CSC") | str("ITSAG") | str("CSC/FIN") | str("CSC/NOM") | str("CSC/OVE") |
|
44
|
-
str("CSC/SP") | str("CSC/FIN") | str("JAG")
|
38
|
+
array_to_str(WGTYPES)
|
45
39
|
end
|
46
40
|
|
47
41
|
rule(:part) do
|
@@ -50,12 +44,7 @@ module Pubid::Iso
|
|
50
44
|
end
|
51
45
|
|
52
46
|
rule(:organization) do
|
53
|
-
Renderer::Russian::PUBLISHER.values
|
54
|
-
str("IEC") | str("IEEE") | str("CIW") | str("SAE") |
|
55
|
-
str("CIE") | str("ASME") | str("ASTM") | str("OECD") | str("ISO") |
|
56
|
-
str("IWA") | str("HL7") | str("CEI")) do |acc, publisher|
|
57
|
-
acc | str(publisher)
|
58
|
-
end
|
47
|
+
array_to_str(Renderer::Russian::PUBLISHER.values) | array_to_str(ORGANIZATIONS)
|
59
48
|
end
|
60
49
|
|
61
50
|
rule(:edition) do
|
@@ -72,8 +61,9 @@ module Pubid::Iso
|
|
72
61
|
(str("/") | space).maybe >>
|
73
62
|
(str("Amd") | str("AMD") | str("AM")) >>
|
74
63
|
(space | str(".")).repeat(1).maybe >>
|
75
|
-
digits.as(:
|
76
|
-
(
|
64
|
+
digits.as(:number) >>
|
65
|
+
(str(".") >> digits.as(:iteration)).maybe >>
|
66
|
+
((str(":") | str("-")) >> digits.as(:year)).maybe).as(:amendments)
|
77
67
|
end
|
78
68
|
|
79
69
|
rule(:corrigendum) do
|
@@ -81,8 +71,9 @@ module Pubid::Iso
|
|
81
71
|
(str("/") | space).maybe >>
|
82
72
|
(str("Cor") | str("COR")) >>
|
83
73
|
(space | str(".")).repeat(1).maybe >>
|
84
|
-
digits.as(:
|
85
|
-
(
|
74
|
+
digits.as(:number) >>
|
75
|
+
(str(".") >> digits.as(:iteration)).maybe >>
|
76
|
+
((str(":") | str("-")) >> digits.as(:year)).maybe).as(:corrigendums)
|
86
77
|
end
|
87
78
|
|
88
79
|
rule(:language) do
|
@@ -115,7 +106,7 @@ module Pubid::Iso
|
|
115
106
|
end
|
116
107
|
|
117
108
|
rule(:dir_document_body) do
|
118
|
-
((str("DIR") | str("Directives Part") | str("Directives, Part") | str("Directives,")).as(:
|
109
|
+
((str("DIR") | str("Directives Part") | str("Directives, Part") | str("Directives,")).as(:type) >> space).maybe >>
|
119
110
|
(str("JTC").as(:dirtype) >> space).maybe >>
|
120
111
|
(digits.as(:number) >> (str(":") >> year).maybe).maybe >>
|
121
112
|
(str(" -- Consolidated").maybe >> (space? >> (organization.as(:publisher) >> space).maybe >>
|
@@ -129,7 +120,7 @@ module Pubid::Iso
|
|
129
120
|
space? >> ((stage.as(:stage) | type) >> space).maybe >>
|
130
121
|
digits.as(:number) >>
|
131
122
|
# for identifiers like ISO 5537/IDF 26
|
132
|
-
(str("|") >> (str("IDF") >> space >> digits).as(:joint_document)).maybe >>
|
123
|
+
(str("|") >> (str("IDF").as(:publisher) >> space >> digits.as(:number)).as(:joint_document)).maybe >>
|
133
124
|
part.maybe >> iteration.maybe >>
|
134
125
|
(space? >> (str(":") | str("-")) >> year).maybe >>
|
135
126
|
# stage before amendment
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Pubid::Iso::Renderer
|
2
|
+
class Base < Pubid::Core::Renderer::Base
|
3
|
+
# Render identifier
|
4
|
+
# @param with_edition [Boolean] include edition in output
|
5
|
+
# @see Pubid::Core::Renderer::Base for another options
|
6
|
+
def render(with_edition: true, **args)
|
7
|
+
params = prerender_params(@params,
|
8
|
+
{ with_edition: with_edition }.merge(args))
|
9
|
+
# render empty string when the key is not exist
|
10
|
+
params.default = ""
|
11
|
+
|
12
|
+
render_identifier(params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def render_identifier(params)
|
16
|
+
if @params[:type] && @params[:stage] && %w(DIS FDIS).include?(@params[:stage].abbr)
|
17
|
+
render_base(params, " #{render_short_stage(@params[:stage].abbr)}#{@params[:type]}")
|
18
|
+
else
|
19
|
+
render_base(params, "%{type}%{stage}" % params)
|
20
|
+
end +
|
21
|
+
"%{part}%{iteration}%{year}%{edition}%{amendments}%{corrigendums}%{language}" % params
|
22
|
+
end
|
23
|
+
|
24
|
+
def render_short_stage(stage)
|
25
|
+
case stage
|
26
|
+
when "DIS"
|
27
|
+
"D"
|
28
|
+
when "FDIS"
|
29
|
+
"FD"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def render_type(type, opts, params)
|
34
|
+
if params[:copublisher]
|
35
|
+
" #{type}"
|
36
|
+
else
|
37
|
+
"/#{type}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def render_stage(stage, opts, params)
|
42
|
+
if params[:copublisher]
|
43
|
+
" #{stage.abbr}"
|
44
|
+
else
|
45
|
+
"/#{stage.abbr}"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def render_edition(edition, opts, _params)
|
50
|
+
" ED#{edition}" if opts[:with_edition]
|
51
|
+
end
|
52
|
+
|
53
|
+
def render_iteration(iteration, _opts, _params)
|
54
|
+
".#{iteration}"
|
55
|
+
end
|
56
|
+
|
57
|
+
def render_amendments(amendments, opts, _params)
|
58
|
+
amendments.sort.map { |amendment| amendment.render_pubid(opts[:stage_format_long], opts[:with_date]) }.join("+")
|
59
|
+
end
|
60
|
+
|
61
|
+
def render_corrigendums(corrigendums, opts, _params)
|
62
|
+
corrigendums.sort.map { |corrigendum| corrigendum.render_pubid(opts[:stage_format_long], opts[:with_date]) }.join("+")
|
63
|
+
end
|
64
|
+
|
65
|
+
def render_language(language, opts, _params)
|
66
|
+
return if opts[:with_language_code] == :none
|
67
|
+
super
|
68
|
+
end
|
69
|
+
|
70
|
+
def render_year(year, opts, params)
|
71
|
+
return ":#{year}" if params[:amendments] || params[:corrigendums]
|
72
|
+
opts[:with_date] && ":#{year}" || ""
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module Pubid::Iso::Renderer
|
2
|
-
class Dir <
|
2
|
+
class Dir < Base
|
3
3
|
|
4
4
|
def render_identifier(params)
|
5
5
|
res = ("%{publisher}%{copublisher} DIR%{dirtype}%{number}%{year}%{supplement}" % params)
|
6
6
|
|
7
7
|
if params.key?(:joint_document)
|
8
|
-
joint_params = prerender_params(params[:joint_document], {})
|
8
|
+
joint_params = prerender_params(params[:joint_document].get_params, {})
|
9
9
|
joint_params.default = ""
|
10
10
|
res += (" + %{publisher}%{copublisher}%{dirtype}%{number}%{year}%{supplement}" % joint_params)
|
11
11
|
end
|
@@ -26,7 +26,7 @@ module Pubid::Iso::Renderer
|
|
26
26
|
" #{supplement.publisher} SUP"
|
27
27
|
else
|
28
28
|
" SUP"
|
29
|
-
end + (supplement.
|
29
|
+
end + (supplement.year && ":#{supplement.year}" || "") +
|
30
30
|
(supplement.edition && " Edition #{supplement.edition}" || "")
|
31
31
|
end
|
32
32
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Pubid::Iso::Renderer
|
2
|
-
class French <
|
2
|
+
class French < Base
|
3
3
|
def render_identifier(params)
|
4
4
|
if params[:type] == " Guide"
|
5
5
|
params[:type] = ""
|
@@ -10,7 +10,7 @@ module Pubid::Iso::Renderer
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def render_copublisher(copublisher, opts, params)
|
13
|
-
"/#{copublisher.sub("IEC", "CEI")}"
|
13
|
+
"/#{copublisher.to_s.sub("IEC", "CEI")}"
|
14
14
|
end
|
15
15
|
|
16
16
|
def render_corrigendums(corrigendums, _opts, _params)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Pubid::Iso::Renderer
|
2
|
-
class Russian <
|
2
|
+
class Russian < Base
|
3
3
|
PUBLISHER = { "ISO" => "ИСО", "IEC" => "МЭК" }.freeze
|
4
4
|
STAGE = { "FDIS" => "ОПМС",
|
5
5
|
"DIS" => "ПМС",
|
@@ -44,9 +44,9 @@ module Pubid::Iso::Renderer
|
|
44
44
|
|
45
45
|
def render_stage(stage, _opts, params)
|
46
46
|
if params[:copublisher]
|
47
|
-
" #{STAGE[stage]}"
|
47
|
+
" #{STAGE[stage.abbr]}"
|
48
48
|
else
|
49
|
-
"/#{STAGE[stage]}"
|
49
|
+
"/#{STAGE[stage.abbr]}"
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
module Pubid::Iso::Renderer
|
2
|
-
class Tc <
|
2
|
+
class Tc < Base
|
3
3
|
|
4
4
|
def render_identifier(params)
|
5
5
|
"%{publisher}%{copublisher} %{tctype} %{tcnumber}%{sctype}%{wgtype} N%{number}" % params
|
6
6
|
end
|
7
7
|
|
8
8
|
def render_tctype(tctype, _opts, _params)
|
9
|
-
tctype.is_a?(Array) && tctype.join("/") || tctype
|
9
|
+
tctype.is_a?(Array) && tctype.join("/") || tctype.to_s
|
10
10
|
end
|
11
11
|
|
12
12
|
# TC 184/SC/WG 4 - no wg number
|
@@ -1,13 +1,11 @@
|
|
1
1
|
module Pubid::Iso::Renderer
|
2
|
-
class UrnDir <
|
2
|
+
class UrnDir < Urn
|
3
3
|
|
4
4
|
def render_identifier(params)
|
5
5
|
res = ("urn:iso:doc:%{publisher}%{copublisher}:dir%{dirtype}%{number}%{year}%{supplement}" % params)
|
6
6
|
|
7
7
|
if params.key?(:joint_document)
|
8
|
-
joint_params = prerender_params(
|
9
|
-
params[:joint_document].transform_values { |value| value.is_a?(Parslet::Slice) && value.to_s || value }, {}
|
10
|
-
)
|
8
|
+
joint_params = prerender_params(params[:joint_document].get_params, {})
|
11
9
|
joint_params.default = ""
|
12
10
|
res += (":%{publisher}%{copublisher}%{dirtype}%{number}%{supplement}" % joint_params)
|
13
11
|
end
|
@@ -28,7 +26,7 @@ module Pubid::Iso::Renderer
|
|
28
26
|
":sup:#{supplement.publisher.downcase}"
|
29
27
|
else
|
30
28
|
":sup"
|
31
|
-
end + (supplement.
|
29
|
+
end + (supplement.year && ":#{supplement.year}" || "") +
|
32
30
|
(supplement.edition && ":ed-#{supplement.edition}" || "")
|
33
31
|
end
|
34
32
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
module Pubid::Iso::Renderer
|
2
|
-
class UrnTc <
|
2
|
+
class UrnTc < Urn
|
3
3
|
|
4
4
|
def render_identifier(params)
|
5
5
|
"urn:iso:doc:%{publisher}%{copublisher}:%{tctype}:%{tcnumber}%{sctype}%{wgtype}:%{number}" % params
|
6
6
|
end
|
7
7
|
|
8
8
|
def render_tctype(tctype, _opts, _params)
|
9
|
-
(tctype.is_a?(Array) && tctype.join(":") || tctype).downcase
|
9
|
+
(tctype.is_a?(Array) && tctype.join(":") || tctype.to_s).downcase
|
10
10
|
end
|
11
11
|
|
12
12
|
def render_sctype(sctype, _opts, params)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Pubid::Iso::Renderer
|
2
|
+
class Urn < Pubid::Core::Renderer::Urn
|
3
|
+
STAGES = { PWI: 0,
|
4
|
+
NP: 10,
|
5
|
+
AWI: 20,
|
6
|
+
WD: 20.20,
|
7
|
+
CD: 30,
|
8
|
+
DIS: 40,
|
9
|
+
FDIS: 50,
|
10
|
+
PRF: 50,
|
11
|
+
IS: 60 }.freeze
|
12
|
+
|
13
|
+
def render_identifier(params)
|
14
|
+
render_base(params) + "%{stage}"\
|
15
|
+
"%{corrigendum_stage}%{iteration}%{edition}%{amendments}%{corrigendums}%{language}" % params
|
16
|
+
end
|
17
|
+
|
18
|
+
def render_stage(stage, _opts, params)
|
19
|
+
":stage-#{stage.harmonized_code}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Pubid::Iso
|
2
|
+
class Stage
|
3
|
+
attr_accessor :abbr, :harmonized_code
|
4
|
+
|
5
|
+
STAGES = { PWI: "00.00",
|
6
|
+
NP: "10.00",
|
7
|
+
AWI: "20.00",
|
8
|
+
WD: "20.20",
|
9
|
+
CD: "30.00",
|
10
|
+
DIS: "40.00",
|
11
|
+
FDIS: "50.00",
|
12
|
+
PRF: "50.00",
|
13
|
+
IS: "60.00" }.freeze
|
14
|
+
|
15
|
+
# @param abbr [String, Symbol] abbreviation eg. :PWI, :WD
|
16
|
+
# @param harmonized_code [HarmonizedStageCode]
|
17
|
+
def initialize(abbr: nil, harmonized_code: nil)
|
18
|
+
@abbr = abbr
|
19
|
+
@harmonized_code = harmonized_code
|
20
|
+
|
21
|
+
if harmonized_code
|
22
|
+
# @abbr = STAGES.select { |k,v| v == @harmonized_code.to_s }.first&.first
|
23
|
+
@abbr ||= STAGES.key(@harmonized_code.to_s)
|
24
|
+
end
|
25
|
+
|
26
|
+
if abbr
|
27
|
+
raise Errors::CodeInvalidError, "#{abbr} is not valid stage" unless STAGES.key?(abbr.to_sym)
|
28
|
+
|
29
|
+
@harmonized_code ||= HarmonizedStageCode.new(*STAGES[abbr.to_sym].split("."))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/pubid/iso/supplement.rb
CHANGED
@@ -1,24 +1,54 @@
|
|
1
1
|
module Pubid::Iso
|
2
2
|
class Supplement < Pubid::Core::Supplement
|
3
|
-
attr_accessor :stage, :publisher, :edition
|
3
|
+
attr_accessor :stage, :publisher, :edition, :iteration
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
# @param stage [Stage] stage, e.g. "PWI", "NP"
|
6
|
+
# @param publisher [String] publisher, e.g. "ISO", "IEC"
|
7
|
+
# @param edition [Integer] edition, e.g. 1, 2, 3
|
8
|
+
# @param iteration [Integer] iteration, e.g. 1, 2, 3
|
9
|
+
# @see Pubid::Core::Supplement for other options
|
10
|
+
def initialize(stage: nil, publisher: nil, edition: nil, iteration: nil, **args)
|
11
|
+
super(**args)
|
7
12
|
@stage = stage
|
8
13
|
@publisher = publisher.to_s
|
9
|
-
@edition = edition
|
14
|
+
@edition = edition&.to_i
|
15
|
+
@iteration = iteration&.to_i
|
16
|
+
|
17
|
+
if @iteration && @stage.nil?
|
18
|
+
raise Errors::PublishedIterationError.new("cannot assign iteration to published supplement")
|
19
|
+
end
|
10
20
|
end
|
11
21
|
|
12
22
|
def render_pubid_stage
|
13
|
-
((@stage && @stage) || "")
|
23
|
+
((@stage && @stage.abbr != "IS" && @stage.abbr) || "")
|
14
24
|
end
|
15
25
|
|
16
26
|
def render_urn_stage
|
17
|
-
((@stage && ":stage-#{
|
27
|
+
((@stage && ":stage-#{@stage.harmonized_code}") || "")
|
18
28
|
end
|
19
29
|
|
20
30
|
def <=>(other)
|
21
31
|
(super == 0) && ((stage.nil? || stage == other.stage) && 0 || -1) || super
|
22
32
|
end
|
33
|
+
|
34
|
+
def render_iteration
|
35
|
+
@iteration && ".#{@iteration}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def render_pubid_number(with_date: true)
|
39
|
+
if @year && with_date
|
40
|
+
"#{@number}#{render_iteration}:#{@year}"
|
41
|
+
else
|
42
|
+
"#{@number}#{render_iteration}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def render_urn_number
|
47
|
+
if @year
|
48
|
+
":#{@year}:v#{@number}#{render_iteration}"
|
49
|
+
else
|
50
|
+
":#{@number}#{render_iteration}:v1"
|
51
|
+
end
|
52
|
+
end
|
23
53
|
end
|
24
54
|
end
|
@@ -9,16 +9,24 @@ module Pubid::Iso
|
|
9
9
|
end
|
10
10
|
|
11
11
|
rule(amendments: subtree(:amendments)) do |context|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
context[:amendments] =
|
13
|
+
[Amendment.new(
|
14
|
+
number: context[:amendments][:number],
|
15
|
+
year: context[:amendments][:year],
|
16
|
+
stage: context[:amendments][:stage] && convert_stage(context[:amendments][:stage]),
|
17
|
+
iteration: context[:amendments][:iteration])]
|
18
|
+
|
15
19
|
context
|
16
20
|
end
|
17
|
-
|
21
|
+
|
18
22
|
rule(corrigendums: subtree(:corrigendums)) do |context|
|
19
|
-
|
20
|
-
|
21
|
-
|
23
|
+
context[:corrigendums] =
|
24
|
+
[Corrigendum.new(
|
25
|
+
number: context[:corrigendums][:number],
|
26
|
+
year: context[:corrigendums][:year],
|
27
|
+
stage: context[:corrigendums][:stage] && convert_stage(context[:corrigendums][:stage]),
|
28
|
+
iteration: context[:corrigendums][:iteration])]
|
29
|
+
|
22
30
|
context
|
23
31
|
end
|
24
32
|
|
@@ -43,6 +51,8 @@ module Pubid::Iso
|
|
43
51
|
"TS"
|
44
52
|
when "ТО"
|
45
53
|
"TR"
|
54
|
+
when "Directives Part", "Directives, Part", "Directives,"
|
55
|
+
"DIR"
|
46
56
|
else
|
47
57
|
type
|
48
58
|
end
|
@@ -72,7 +82,8 @@ module Pubid::Iso
|
|
72
82
|
#
|
73
83
|
rule(publisher: simple(:publisher), supplement: subtree(:supplement)) do |context|
|
74
84
|
context[:supplement] =
|
75
|
-
Supplement.new(number: context[:supplement][:
|
85
|
+
Supplement.new(number: context[:supplement][:number],
|
86
|
+
year: context[:supplement][:year],
|
76
87
|
publisher: context[:supplement][:publisher],
|
77
88
|
edition: context[:supplement][:edition])
|
78
89
|
context
|
@@ -80,31 +91,38 @@ module Pubid::Iso
|
|
80
91
|
|
81
92
|
rule(supplement: subtree(:supplement)) do |context|
|
82
93
|
context[:supplement] =
|
83
|
-
Supplement.new(number: context[:supplement][:
|
94
|
+
Supplement.new(number: context[:supplement][:number],
|
95
|
+
year: context[:supplement][:year],
|
84
96
|
publisher: context[:supplement][:publisher],
|
85
97
|
edition: context[:supplement][:edition])
|
86
98
|
context
|
87
99
|
end
|
88
100
|
|
101
|
+
rule(joint_document: subtree(:joint_document)) do |context|
|
102
|
+
context[:joint_document] =
|
103
|
+
Identifier.new(**context[:joint_document])
|
104
|
+
context
|
105
|
+
end
|
89
106
|
|
90
107
|
def self.convert_stage(code)
|
91
108
|
russian_code = Renderer::Russian::STAGE.key(code.to_s)
|
92
|
-
return russian_code.to_s if russian_code
|
109
|
+
# return russian_code.to_s if russian_code
|
93
110
|
|
94
|
-
case code
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
111
|
+
code = case code
|
112
|
+
when "NWIP"
|
113
|
+
"NP"
|
114
|
+
when "D", "FPD"
|
115
|
+
"DIS"
|
116
|
+
when "FD", "F"
|
117
|
+
"FDIS"
|
118
|
+
when "Fpr"
|
119
|
+
"PRF"
|
120
|
+
when "pD", "PD"
|
121
|
+
"CD"
|
122
|
+
else
|
123
|
+
code
|
124
|
+
end
|
125
|
+
Stage.new(abbr: (russian_code || code))
|
108
126
|
end
|
109
127
|
|
110
128
|
def self.convert_language(code)
|
data/lib/pubid/iso/version.rb
CHANGED
data/lib/pubid/iso.rb
CHANGED
@@ -10,12 +10,16 @@ end
|
|
10
10
|
|
11
11
|
require "pubid-core"
|
12
12
|
require_relative "iso/errors"
|
13
|
+
require_relative "iso/stage"
|
14
|
+
require_relative "iso/harmonized_stage_code"
|
13
15
|
require_relative "iso/parser"
|
14
16
|
require_relative "iso/transformer"
|
15
17
|
require_relative "iso/supplement"
|
16
18
|
require_relative "iso/amendment"
|
17
19
|
require_relative "iso/corrigendum"
|
18
20
|
require_relative "iso/identifier"
|
21
|
+
require_relative "iso/renderer/base"
|
22
|
+
require_relative "iso/renderer/urn"
|
19
23
|
require_relative "iso/renderer/french"
|
20
24
|
require_relative "iso/renderer/russian"
|
21
25
|
require_relative "iso/renderer/tc"
|
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.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-16 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:
|
103
|
+
version: 1.1.2
|
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:
|
110
|
+
version: 1.1.2
|
111
111
|
description: Library to generate, parse and manipulate ISO PubID.
|
112
112
|
email:
|
113
113
|
- open.source@ribose.com
|
@@ -124,14 +124,18 @@ files:
|
|
124
124
|
- lib/pubid/iso/amendment.rb
|
125
125
|
- lib/pubid/iso/corrigendum.rb
|
126
126
|
- lib/pubid/iso/errors.rb
|
127
|
+
- lib/pubid/iso/harmonized_stage_code.rb
|
127
128
|
- lib/pubid/iso/identifier.rb
|
128
129
|
- lib/pubid/iso/parser.rb
|
130
|
+
- lib/pubid/iso/renderer/base.rb
|
129
131
|
- lib/pubid/iso/renderer/dir.rb
|
130
132
|
- lib/pubid/iso/renderer/french.rb
|
131
133
|
- lib/pubid/iso/renderer/russian.rb
|
132
134
|
- lib/pubid/iso/renderer/tc.rb
|
133
135
|
- lib/pubid/iso/renderer/urn-dir.rb
|
134
136
|
- lib/pubid/iso/renderer/urn-tc.rb
|
137
|
+
- lib/pubid/iso/renderer/urn.rb
|
138
|
+
- lib/pubid/iso/stage.rb
|
135
139
|
- lib/pubid/iso/supplement.rb
|
136
140
|
- lib/pubid/iso/transformer.rb
|
137
141
|
- lib/pubid/iso/version.rb
|