pubid-iso 0.7.4 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
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.