pubid-iso 0.6.1 → 0.7.1
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/lib/pubid/iso/identifier/addendum.rb +1 -1
- data/lib/pubid/iso/identifier/amendment.rb +2 -2
- data/lib/pubid/iso/identifier/base.rb +20 -8
- data/lib/pubid/iso/identifier/corrigendum.rb +2 -2
- data/lib/pubid/iso/identifier/directives.rb +2 -2
- data/lib/pubid/iso/identifier/extract.rb +1 -1
- data/lib/pubid/iso/identifier/guide.rb +1 -1
- data/lib/pubid/iso/identifier/international_standard.rb +2 -2
- data/lib/pubid/iso/identifier/international_standardized_profile.rb +3 -3
- data/lib/pubid/iso/identifier/international_workshop_agreement.rb +2 -2
- data/lib/pubid/iso/identifier/publicly_available_specification.rb +1 -1
- data/lib/pubid/iso/identifier/recommendation.rb +1 -1
- data/lib/pubid/iso/identifier/supplement.rb +2 -2
- data/lib/pubid/iso/identifier/technical_committee.rb +1 -1
- data/lib/pubid/iso/identifier/technical_report.rb +1 -1
- data/lib/pubid/iso/identifier/technical_specification.rb +1 -1
- data/lib/pubid/iso/identifier/technology_trends_assessments.rb +1 -1
- data/lib/pubid/iso/renderer/base.rb +10 -6
- data/lib/pubid/iso/renderer/dir.rb +1 -1
- data/lib/pubid/iso/renderer/guide.rb +2 -2
- data/lib/pubid/iso/renderer/international_workshop_agreement.rb +2 -1
- data/lib/pubid/iso/renderer/supplement.rb +6 -5
- data/lib/pubid/iso/renderer/urn-dir.rb +2 -2
- data/lib/pubid/iso/renderer/urn-supplement.rb +1 -1
- data/lib/pubid/iso/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 554740ba301fe225d6b7a58931013bb6d33d2c9ffa41de45c2b72b53b16340e7
|
4
|
+
data.tar.gz: ad603b65a477dbf70222252e0b286226d9dc576ff24fc794e9873fdea4a0a45e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 731c5b93d0c2a443a6d1af5c965d6eb4984279bb062d1bd3136436cf65044186332661cbc6ae51a0500131b1cc13204991c4ed8e211fe28937298db806c65817
|
7
|
+
data.tar.gz: 441fbee4c9481f6c60f7f25a7ea6256550dab0241c0fb1a048e3272eaab4b87ac1089c08d2f7a33dbd74d418151793193ee7e0d36143b8c46ac79594134b3fcf
|
@@ -21,7 +21,7 @@ module Pubid::Iso
|
|
21
21
|
},
|
22
22
|
}.freeze
|
23
23
|
def self.type
|
24
|
-
{ key: :amd, title: "Amendment" }
|
24
|
+
{ key: :amd, title: "Amendment", short: "AMD" }
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.get_renderer_class
|
@@ -31,7 +31,7 @@ module Pubid::Iso
|
|
31
31
|
def urn
|
32
32
|
raise Errors::NoEditionError, "Base document must have edition" unless base_has_edition?
|
33
33
|
|
34
|
-
Renderer::UrnAmendment.new(
|
34
|
+
Renderer::UrnAmendment.new(to_h(deep: false)).render
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -12,7 +12,7 @@ module Pubid::Iso
|
|
12
12
|
:tctype, :sctype, :wgtype, :tcnumber, :scnumber, :wgnumber,
|
13
13
|
:dirtype,
|
14
14
|
:base,
|
15
|
-
:typed_stage,
|
15
|
+
# :typed_stage,
|
16
16
|
:supplements,
|
17
17
|
:addendum
|
18
18
|
|
@@ -21,7 +21,7 @@ module Pubid::Iso
|
|
21
21
|
#
|
22
22
|
# @param stage [Stage, Symbol, String] stage or typed stage, e.g. "PWI", "NP", "50.00", Stage.new(abbr: :WD), "DTR"
|
23
23
|
# @param iteration [Integer] document iteration, eg. "1", "2", "3"
|
24
|
-
# @param joint_document [Identifier] joint document
|
24
|
+
# @param joint_document [Identifier, Hash] joint document
|
25
25
|
# @param supplements [Array<Supplement>] supplements
|
26
26
|
# @param tctype [String] Technical Committee type, eg. "TC", "JTC"
|
27
27
|
# @param sctype [String] TC subsommittee, eg. "SC"
|
@@ -30,7 +30,7 @@ module Pubid::Iso
|
|
30
30
|
# @param scnumber [Integer] Subsommittee number, eg. "1", "2"
|
31
31
|
# @param wgnumber [Integer] Working group number, eg. "1", "2"
|
32
32
|
# @param dirtype [String] Directives document type, eg. "JTC"
|
33
|
-
# @param base [Identifier] base document for supplement's identifier
|
33
|
+
# @param base [Identifier, Hash] base document for supplement's identifier
|
34
34
|
# @param type [nil, :tr, :ts, :amd, :cor, :guide, :dir, :tc, Type] document's type, eg. :tr, :ts, :amd, :cor, Type.new(:tr)
|
35
35
|
# @raise [Errors::SupplementWithoutYearOrStageError] when trying to apply
|
36
36
|
# supplement to the document without edition year or stage
|
@@ -62,13 +62,19 @@ module Pubid::Iso
|
|
62
62
|
end
|
63
63
|
|
64
64
|
if stage
|
65
|
-
@
|
65
|
+
@stage = resolve_stage(stage)
|
66
66
|
elsif iteration && !is_a?(Supplement)
|
67
67
|
raise Errors::IterationWithoutStageError, "Document without stage cannot have iteration"
|
68
68
|
end
|
69
69
|
|
70
70
|
@iteration = iteration.to_i if iteration
|
71
|
-
|
71
|
+
if joint_document
|
72
|
+
if joint_document.is_a?(Hash)
|
73
|
+
@joint_document = Identifier.create(**joint_document)
|
74
|
+
else
|
75
|
+
@joint_document = joint_document
|
76
|
+
end
|
77
|
+
end
|
72
78
|
@tctype = tctype if tctype
|
73
79
|
@sctype = sctype.to_s if sctype
|
74
80
|
@wgtype = wgtype.to_s if wgtype
|
@@ -77,7 +83,13 @@ module Pubid::Iso
|
|
77
83
|
@wgnumber = wgnumber.to_s if wgnumber
|
78
84
|
@dir = dir.to_s if dir
|
79
85
|
@dirtype = dirtype.to_s if dirtype
|
80
|
-
|
86
|
+
if base
|
87
|
+
if base.is_a?(Hash)
|
88
|
+
@base = Identifier.create(**base)
|
89
|
+
else
|
90
|
+
@base = base
|
91
|
+
end
|
92
|
+
end
|
81
93
|
@part = part if part
|
82
94
|
@addendum = addendum if addendum
|
83
95
|
@edition = edition
|
@@ -178,7 +190,7 @@ module Pubid::Iso
|
|
178
190
|
# @return [String] URN identifier
|
179
191
|
def urn
|
180
192
|
((@tctype && Renderer::UrnTc) || Pubid::Iso::Renderer::Urn).new(
|
181
|
-
|
193
|
+
to_h(deep: false).merge({ type: type[:key] }),
|
182
194
|
).render + (language ? ":#{language}" : "")
|
183
195
|
end
|
184
196
|
|
@@ -243,7 +255,7 @@ module Pubid::Iso
|
|
243
255
|
options[:with_prf] = with_prf
|
244
256
|
options[:language] = lang
|
245
257
|
|
246
|
-
self.class.get_renderer_class.new(
|
258
|
+
self.class.get_renderer_class.new(to_h(deep: false)).render(**options) +
|
247
259
|
if @joint_document
|
248
260
|
render_joint_document(@joint_document)
|
249
261
|
end.to_s
|
@@ -22,7 +22,7 @@ module Pubid::Iso
|
|
22
22
|
}.freeze
|
23
23
|
|
24
24
|
def self.type
|
25
|
-
{ key: :cor, title: "Corrigendum" }
|
25
|
+
{ key: :cor, title: "Corrigendum", short: "COR" }
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.get_renderer_class
|
@@ -32,7 +32,7 @@ module Pubid::Iso
|
|
32
32
|
def urn
|
33
33
|
raise Errors::NoEditionError, "Base document must have edition" unless base_has_edition?
|
34
34
|
|
35
|
-
Renderer::UrnCorrigendum.new(
|
35
|
+
Renderer::UrnCorrigendum.new(to_h(deep: false)).render
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -16,7 +16,7 @@ module Pubid::Iso
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.type
|
19
|
-
{ key: :dir, title: "Directives" }
|
19
|
+
{ key: :dir, title: "Directives", short: "DIR" }
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.get_renderer_class
|
@@ -24,7 +24,7 @@ module Pubid::Iso
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def urn
|
27
|
-
Renderer::UrnDir.new(
|
27
|
+
Renderer::UrnDir.new(to_h(deep: false)).render
|
28
28
|
end
|
29
29
|
|
30
30
|
def render_joint_document(joint_document)
|
@@ -31,7 +31,7 @@ module Pubid::Iso
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def typed_stage_abbrev
|
34
|
-
if self.class::TYPED_STAGES.key?(
|
34
|
+
if self.class::TYPED_STAGES.key?(stage)
|
35
35
|
super
|
36
36
|
else
|
37
37
|
stage&.abbr
|
@@ -39,7 +39,7 @@ module Pubid::Iso
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.type
|
42
|
-
{ key: :is, title: "International Standard" }
|
42
|
+
{ key: :is, title: "International Standard", short: nil }
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
@@ -6,12 +6,12 @@ module Pubid::Iso
|
|
6
6
|
def_delegators 'Pubid::Iso::Identifier::InternationalStandardizedProfile', :type
|
7
7
|
|
8
8
|
TYPED_STAGES = {
|
9
|
-
|
9
|
+
disp: {
|
10
10
|
abbr: "DISP",
|
11
11
|
name: "Draft International Standardized Profile",
|
12
12
|
harmonized_stages: %w[40.00 40.20 40.60 40.92 40.93 40.98 40.99],
|
13
13
|
},
|
14
|
-
|
14
|
+
fdisp: {
|
15
15
|
abbr: "FDISP",
|
16
16
|
name: "Final Draft International Standardized Profile",
|
17
17
|
harmonized_stages: %w[50.00 50.20 50.60 50.92],
|
@@ -19,7 +19,7 @@ module Pubid::Iso
|
|
19
19
|
}.freeze
|
20
20
|
|
21
21
|
def self.type
|
22
|
-
{ key: :isp, title: "International Standardized Profile" }
|
22
|
+
{ key: :isp, title: "International Standardized Profile", short: "ISP" }
|
23
23
|
end
|
24
24
|
|
25
25
|
def self.get_renderer_class
|
@@ -6,7 +6,7 @@ module Pubid::Iso
|
|
6
6
|
def_delegators 'Pubid::Iso::Identifier::InternationalWorkshopAgreement', :type
|
7
7
|
|
8
8
|
TYPED_STAGES = {
|
9
|
-
|
9
|
+
diwa: {
|
10
10
|
abbr: "DIWA",
|
11
11
|
name: "Draft International Workshop Agreement",
|
12
12
|
harmonized_stages: %w[40.00 40.20 40.60 40.92 40.93 40.98 40.99],
|
@@ -14,7 +14,7 @@ module Pubid::Iso
|
|
14
14
|
}.freeze
|
15
15
|
|
16
16
|
def self.type
|
17
|
-
{ key: :iwa, title: "International Workshop Agreement" }
|
17
|
+
{ key: :iwa, title: "International Workshop Agreement", short: "IWA" }
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.get_renderer_class
|
@@ -24,7 +24,7 @@ module Pubid::Iso
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.type
|
27
|
-
{ key: :sup, title: "Supplement", values: %w[Supplement Suppl SUP] }
|
27
|
+
{ key: :sup, title: "Supplement", values: %w[Supplement Suppl SUP], short: "SUP" }
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.get_renderer_class
|
@@ -32,7 +32,7 @@ module Pubid::Iso
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def urn
|
35
|
-
Renderer::UrnSupplement.new(
|
35
|
+
Renderer::UrnSupplement.new(to_h(deep: false)).render
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -42,10 +42,10 @@ module Pubid::Iso::Renderer
|
|
42
42
|
def render_base(_base, _opts, _params)
|
43
43
|
end
|
44
44
|
|
45
|
-
def render_type_prefix(params)
|
46
|
-
result = params[:
|
45
|
+
def render_type_prefix(params, opts)
|
46
|
+
result = params[:stage].nil? || !params[:stage].is_a?(Pubid::Core::TypedStage) ? self.class::TYPE : ""
|
47
47
|
|
48
|
-
if params[:stage] && !params[:stage].empty? && !result.empty?
|
48
|
+
if params[:stage] != "" && !params[:stage].to_s(with_prf: opts[:with_prf]).empty? && !result.empty?
|
49
49
|
" #{result}"
|
50
50
|
else
|
51
51
|
result
|
@@ -53,7 +53,8 @@ module Pubid::Iso::Renderer
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def render_identifier(params, opts)
|
56
|
-
|
56
|
+
stage = params.key?(:stage) ? postrender_stage(params[:stage], opts, params) : ""
|
57
|
+
"%{publisher}#{stage}#{render_type_prefix(params, opts)} %{number}%{part}%{iteration}%{year}%{amendments}%{corrigendums}%{addendum}%{edition}" % params
|
57
58
|
end
|
58
59
|
|
59
60
|
def render_copublisher_string(publisher, copublishers, opts)
|
@@ -125,8 +126,11 @@ module Pubid::Iso::Renderer
|
|
125
126
|
typed_stage.to_s
|
126
127
|
end
|
127
128
|
|
128
|
-
def render_stage(stage,
|
129
|
-
|
129
|
+
def render_stage(stage, _opts, _params)
|
130
|
+
stage
|
131
|
+
end
|
132
|
+
|
133
|
+
def postrender_stage(stage, opts, params)
|
130
134
|
return if stage.empty_abbr?(with_prf: opts[:with_prf])
|
131
135
|
|
132
136
|
if opts[:language]
|
@@ -7,7 +7,7 @@ module Pubid::Iso::Renderer
|
|
7
7
|
res = ("%{publisher} DIR%{dirtype}%{number}%{year}%{edition}" % params)
|
8
8
|
|
9
9
|
if params.key?(:joint_document)
|
10
|
-
joint_params = prerender_params(params[:joint_document].
|
10
|
+
joint_params = prerender_params(params[:joint_document].to_h(deep: false), {})
|
11
11
|
joint_params.default = ""
|
12
12
|
res += (" + %{publisher}%{dirtype}%{number}%{year}" % joint_params)
|
13
13
|
end
|
@@ -8,8 +8,8 @@ module Pubid::Iso::Renderer
|
|
8
8
|
elsif opts[:language] == :russian
|
9
9
|
"Руководство %{publisher}%{stage} %{number}%{part}%{iteration}%{year}%{amendments}%{corrigendums}%{edition}" % params
|
10
10
|
else
|
11
|
-
if params[:
|
12
|
-
"%{publisher}%{
|
11
|
+
if params[:stage] && params[:stage].is_a?(Pubid::Core::TypedStage)
|
12
|
+
"%{publisher}%{stage} %{number}%{part}%{iteration}%{year}%{amendments}%{corrigendums}%{edition}" % params
|
13
13
|
else
|
14
14
|
"%{publisher}%{stage} Guide %{number}%{part}%{iteration}%{year}%{amendments}%{corrigendums}%{edition}" % params
|
15
15
|
end
|
@@ -11,7 +11,8 @@ module Pubid::Iso::Renderer
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def render_identifier(params, opts)
|
14
|
-
|
14
|
+
stage = params.key?(:stage) ? postrender_stage(params[:stage], opts, params) : ""
|
15
|
+
"#{stage}#{render_type_prefix(params, opts)} %{number}%{part}%{iteration}%{year}%{amendments}%{corrigendums}%{addendum}%{edition}" % params
|
15
16
|
end
|
16
17
|
end
|
17
18
|
end
|
@@ -23,21 +23,22 @@ module Pubid::Iso::Renderer
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def render_identifier(params, opts)
|
26
|
-
type_prefix = params[:
|
26
|
+
type_prefix = params[:stage].nil? || !params[:stage].is_a?(Pubid::Core::TypedStage) ? self.class::TYPE : ""
|
27
|
+
# type_prefix = params[:typed_stage].nil? || params[:typed_stage].empty? ? self.class::TYPE : ""
|
27
28
|
|
28
|
-
if params[:stage].
|
29
|
+
if params[:stage].instance_of?(Pubid::Core::Stage) && !params[:stage].empty_abbr?
|
29
30
|
type_prefix = " #{type_prefix}"
|
30
31
|
end
|
31
32
|
|
32
33
|
if self.class == Supplement
|
33
34
|
if opts[:base_type] == :dir
|
34
|
-
"%{
|
35
|
+
"%{stage}%{publisher} SUP%{number}%{part}%{iteration}%{year}%{edition}" % params
|
35
36
|
else
|
36
37
|
# type_prefix = "/#{type_prefix}" unless type_prefix.empty?
|
37
|
-
"/%{
|
38
|
+
"/%{stage}#{type_prefix}%{number}%{part}%{iteration}%{year}%{edition}" % params
|
38
39
|
end
|
39
40
|
else
|
40
|
-
"/%{
|
41
|
+
"/%{stage}#{type_prefix}%{number}%{part}%{iteration}%{year}%{edition}" % params
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
@@ -8,10 +8,10 @@ module Pubid::Iso::Renderer
|
|
8
8
|
|
9
9
|
if params.key?(:joint_document)
|
10
10
|
if params[:joint_document].is_a?(Pubid::Iso::Identifier::Supplement)
|
11
|
-
joint_params = params[:joint_document].
|
11
|
+
joint_params = params[:joint_document].to_h(deep: false)
|
12
12
|
res += ":#{joint_params[:base].publisher.downcase}:sup:%{year}" % joint_params
|
13
13
|
else
|
14
|
-
joint_params = prerender_params(params[:joint_document].
|
14
|
+
joint_params = prerender_params(params[:joint_document].to_h(deep: false), {})
|
15
15
|
joint_params.default = ""
|
16
16
|
res += (":%{publisher}%{copublisher}%{dirtype}%{number}%{supplement}" % joint_params)
|
17
17
|
end
|
@@ -13,7 +13,7 @@ module Pubid::Iso::Renderer
|
|
13
13
|
return base.urn if base.base || base.is_a?(Pubid::Iso::Identifier::Directives)
|
14
14
|
|
15
15
|
# to avoid rendering language as part of base
|
16
|
-
Urn.new(base.
|
16
|
+
Urn.new(base.to_h(deep: false)).render
|
17
17
|
end
|
18
18
|
|
19
19
|
def render_number(number, _opts, params)
|
data/lib/pubid/iso/version.rb
CHANGED
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.7.1
|
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: 2024-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: '1.12'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: '1.12'
|
69
69
|
description: Library to generate, parse and manipulate ISO PubID.
|
70
70
|
email:
|
71
71
|
- open.source@ribose.com
|