pubid-iso 0.7.4 → 0.7.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 994066e91ad11d2b30748ff491bd2324dca970907d61f9995c1990388711d185
4
- data.tar.gz: c4b9789dac35f4afb63c567f3e2e41a51633b8e7a46af0dc80b6022778d1e616
3
+ metadata.gz: 544e6e2f64d9eb553d25aaed469e187bab1237e735596a0a02a202ca1fa799e7
4
+ data.tar.gz: 632097c99a2244a83bb69fb6531fd645a85d3170bd63f22f2c4deb217ba2458e
5
5
  SHA512:
6
- metadata.gz: cb7e5d8b073c664ebbfd3ad22e05a415cb932b4c314aeca51164ac1c7c26c1fe4db37c770c63735832251c8e790a1f118a489448bba0d816982bd12c9e7a1364
7
- data.tar.gz: b82c61a71b57000f7607252b2d92bf999bd143a7aba39e59e515998f96a1c3062aeb4dbf33667d1620b89be536a35c4470f389d968622e731a94bf33f83924e7
6
+ metadata.gz: 5dc20550bccf1c93defdc843ab9627781360c2849c83e77a2baac62d49e7e1ecd3617d8e7407e2204d9eba1973e8c7c87d89965513137dbe7a897bdc6ce6904f
7
+ data.tar.gz: 2ba3d831e311b020cfa40a818f6be3677f3cf474efcca7371dabd92f542c1902af1e0bbbf89efafc43240243dc8d6f1ea1d08db2bd748dd2d240976779983ecc
data/README.adoc CHANGED
@@ -61,6 +61,21 @@ pubid.to_s
61
61
  => "ISO/WD 1234"
62
62
  ----
63
63
 
64
+ ==== "PreCD" stage
65
+
66
+ For "PreCD" stage we’re using a special stage called "29" that is not in the International Harmonized Codes.
67
+
68
+ [source,ruby]
69
+ ----
70
+ pubid = Pubid::Iso::Identifier.create(publisher: "ISO", stage: :PreCD, number: 123)
71
+ pubid.to_s
72
+
73
+ => "ISO/PreCD 123"
74
+
75
+ subject.stage.harmonized_code.stages
76
+ => ["29.00", "29.20", "29.60", "29.92", "29.98", "29.99"]
77
+ ----
78
+
64
79
  === With part number
65
80
 
66
81
  [source,ruby]
@@ -1,4 +1,5 @@
1
1
  require_relative "../renderer/extract"
2
+ require_relative "../renderer/urn-extract"
2
3
 
3
4
  module Pubid::Iso
4
5
  module Identifier
@@ -14,6 +15,10 @@ module Pubid::Iso
14
15
  def self.get_renderer_class
15
16
  Renderer::Extract
16
17
  end
18
+
19
+ def urn
20
+ Renderer::UrnExtract.new(to_h(deep: false)).render
21
+ end
17
22
  end
18
23
  end
19
24
  end
@@ -49,7 +49,8 @@ module Pubid::Iso
49
49
  end
50
50
 
51
51
  rule(:stage) do
52
- array_to_str(Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:stage].values) | array_to_str(STAGES)
52
+ array_to_str(Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:stage].values) | array_to_str(STAGES) |
53
+ (str("preCD") | str("PreCD"))
53
54
  end
54
55
 
55
56
  rule(:typed_stage) do
@@ -24,21 +24,22 @@ module Pubid::Iso::Renderer
24
24
 
25
25
  def render_identifier(params, opts)
26
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 : ""
28
27
 
29
- if params[:stage].instance_of?(Pubid::Core::Stage) && !params[:stage].empty_abbr?
28
+ stage = params[:stage]
29
+
30
+ if params[:stage].instance_of?(Pubid::Core::Stage) && !params[:stage].to_s(with_prf: opts[:with_prf]).empty?
30
31
  type_prefix = " #{type_prefix}"
32
+ stage = params[:stage].to_s(with_prf: opts[:with_prf])
31
33
  end
32
34
 
33
35
  if self.class == Supplement
34
36
  if opts[:base_type] == :dir
35
37
  "%{stage}%{publisher} SUP%{number}%{part}%{iteration}%{year}%{month}%{edition}" % params
36
38
  else
37
- # type_prefix = "/#{type_prefix}" unless type_prefix.empty?
38
- "/%{stage}#{type_prefix}%{number}%{part}%{iteration}%{year}%{edition}" % params
39
+ "/#{stage}#{type_prefix}%{number}%{part}%{iteration}%{year}%{edition}" % params
39
40
  end
40
41
  else
41
- "/%{stage}#{type_prefix}%{number}%{part}%{iteration}%{year}%{edition}" % params
42
+ "/#{stage}#{type_prefix}%{number}%{part}%{iteration}%{year}%{edition}" % params
42
43
  end
43
44
  end
44
45
 
@@ -0,0 +1,25 @@
1
+ require_relative "urn"
2
+
3
+ module Pubid::Iso::Renderer
4
+ class UrnExtract < Urn
5
+ def render_identifier(params)
6
+ "%{base}%{stage}:ext%{year}%{number}%{edition}" \
7
+ "#{@params[:base].language ? (':' + @params[:base].language) : ''}" % params
8
+ end
9
+
10
+ def render_base(base, _opts, _params)
11
+ return base.urn if base.base || base.is_a?(Pubid::Iso::Identifier::Directives)
12
+
13
+ # to avoid rendering language as part of base
14
+ Urn.new(base.to_h(deep: false)).render
15
+ end
16
+
17
+ def render_number(number, _opts, params)
18
+ if params[:year]
19
+ ":v#{number}"
20
+ else
21
+ ":#{number}:v1"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -136,6 +136,8 @@ module Pubid::Iso
136
136
  { stage: "CD", type: "TR" }
137
137
  when "PDTS"
138
138
  { stage: "CD", type: "TS" }
139
+ when "preCD"
140
+ { stage: "PreCD" }
139
141
  else
140
142
  { stage: code }
141
143
  end
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Iso
3
- VERSION = "0.7.4".freeze
3
+ VERSION = "0.7.6".freeze
4
4
  end
5
5
  end
data/lib/pubid/iso.rb CHANGED
@@ -95,6 +95,7 @@ config.type_names = { tr: {
95
95
  long: "Recommendation",
96
96
  short: "R",
97
97
  } }.freeze
98
+ config.prefixes = %w[ISO ИСО FprISO]
98
99
  Pubid::Iso::Identifier.set_config(config)
99
100
 
100
101
  require_relative "iso/parser"
data/stages.yaml CHANGED
@@ -3,6 +3,7 @@ abbreviations:
3
3
  NP: ["10.00", "10.20", "10.60", "10.98", "10.92"]
4
4
  AWI: ["20.00", "10.99"]
5
5
  WD: ["20.20", "20.60", "20.98", "20.99"]
6
+ PreCD: ["29.00", "29.20", "29.60", "29.92", "29.98", "29.99"]
6
7
  CD: ["30.00", "30.20", "30.60", "30.92", "30.98", "30.99"]
7
8
  FCD: ["40.00", "40.20", "40.60", "40.92", "40.98", "40.99"]
8
9
  PRF: ["50.00", "50.20", "50.60", "50.92", "50.98", "50.99"]
@@ -32,6 +33,12 @@ codes_description:
32
33
  "20.60": Close of comment period
33
34
  "20.98": Project deleted
34
35
  "20.99": WD approved for registration as CD
36
+ "29.00": Committee draft (CD) registered
37
+ "29.20": CD study/ballot initiated
38
+ "29.60": Close of voting/ comment period
39
+ "29.92": CD referred back to Working Group
40
+ "29.98": Project deleted
41
+ "29.99": CD approved for registration as DIS
35
42
  "30.00": Committee draft (CD) registered
36
43
  "30.20": CD study/ballot initiated
37
44
  "30.60": Close of voting/ comment period
@@ -84,9 +91,9 @@ substage_codes:
84
91
  proceed: "99"
85
92
 
86
93
  draft_codes: ["00.00", "00.20", "00.60", "00.99", "10.00", "10.20", "10.60", "10.92",
87
- "10.99", "20.00", "20.20", "20.60", "20.99", "30.00",
88
- "30.20", "30.60", "30.92", "30.99", "40.00", "40.20", "40.60", "40.92",
89
- "40.93", "40.99", "50.00", "50.20", "50.60", "50.92", "50.99"]
94
+ "10.99", "20.00", "20.20", "20.60", "20.99", "29.00", "29.20", "29.60", "29.92",
95
+ "29.99", "30.00", "30.20", "30.60", "30.92", "30.99", "40.00", "40.20", "40.60",
96
+ "40.92", "40.93", "40.99", "50.00", "50.20", "50.60", "50.92", "50.99"]
90
97
 
91
98
  canceled_codes: ["00.98", "10.98", "20.98", "30.98", "40.98", "50.98", "95.99"]
92
99
  published_codes: ["60.00", "60.60", "90.20", "90.60", "90.92", "90.93", "90.99", "95.20", "95.60", "95.92"]
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.7.4
4
+ version: 0.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-02 00:00:00.000000000 Z
11
+ date: 2024-06-22 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.12.3
61
+ version: 1.12.5
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.12.3
68
+ version: 1.12.5
69
69
  description: Library to generate, parse and manipulate ISO PubID.
70
70
  email:
71
71
  - open.source@ribose.com
@@ -121,6 +121,7 @@ files:
121
121
  - lib/pubid/iso/renderer/urn-amendment.rb
122
122
  - lib/pubid/iso/renderer/urn-corrigendum.rb
123
123
  - lib/pubid/iso/renderer/urn-dir.rb
124
+ - lib/pubid/iso/renderer/urn-extract.rb
124
125
  - lib/pubid/iso/renderer/urn-supplement.rb
125
126
  - lib/pubid/iso/renderer/urn-tc.rb
126
127
  - lib/pubid/iso/renderer/urn.rb
@@ -147,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
148
  - !ruby/object:Gem::Version
148
149
  version: '0'
149
150
  requirements: []
150
- rubygems_version: 3.3.26
151
+ rubygems_version: 3.3.27
151
152
  signing_key:
152
153
  specification_version: 4
153
154
  summary: Library to generate, parse and manipulate ISO PubID.