pubid-bsi 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8301f114cdb297b45e6c558830ebc198b8fe688c871610f09feb18a758213521
4
- data.tar.gz: ad2e418836fea9ee47494c75a43006cc5d32d4ed795b39f39a5ff419db9c7383
3
+ metadata.gz: bdf480ac6bf4dbd931083f12b08fd6cff1bb92ef22efde2a19bc224b0cd31210
4
+ data.tar.gz: 3f7db131a28ad7162f6973faf6be1d0fff9499b27a5a78daf4b1bf47495aaf89
5
5
  SHA512:
6
- metadata.gz: 68a2ab714684c24481819a353529a69bdb1f891395a9ce61915610d14860ad0b3b552e4bdf26e3ff84dbff7a17bd951631c19e8f260c15c2883479793fda2d1f
7
- data.tar.gz: 4d8215a02e26eee04cd7240f2351ac089ab19117a6e100725045b6b79f555369ae4b8f242e27abbb661384b08e3fa0c0a6d80cb22334ff4e995b29d3602e34b1
6
+ metadata.gz: c8a8295cef8551270b33ae2c5eb56209fa7f8742cf7fdbb90855750fd0786d313b835e81a12b5bd0df08d8811935069e4b47e90efa8cb8493d2faee51323d248
7
+ data.tar.gz: 7a9147d773e5da21eaf335aa16182506fc7459f1cbd2eef190555b0ef41aac2f2d8e550ff746645b7e2a647cb7df3eb81cd91db38572de9c49290ce51705873d
@@ -43,9 +43,21 @@ module Pubid::Bsi
43
43
 
44
44
  return transform_expert_commentary(identifier_params) if identifier_params[:expert_commentary]
45
45
 
46
+ return transform_collection(identifier_params) if identifier_params[:second_number]
47
+
46
48
  Identifier.create(**identifier_params)
47
49
  end
48
50
 
51
+ def transform_collection(params)
52
+ first_identifier_params =
53
+ params.reject { |k, _| %i[second_number year supplement].include?(k) }
54
+ second_identifier_params = first_identifier_params.dup
55
+ second_identifier_params[:number] = params[:second_number]
56
+ Collection.new(identifiers: [Identifier.create(**first_identifier_params),
57
+ Identifier.create(**second_identifier_params)],
58
+ **params.slice(:supplement, :year))
59
+ end
60
+
49
61
  def transform_expert_commentary(base_params)
50
62
  Identifier.create(type: :ec,
51
63
  base: Identifier.create(**base_params))
@@ -0,0 +1,22 @@
1
+ module Pubid::Bsi
2
+ module Identifier
3
+ class Collection < Base
4
+ def_delegators 'Pubid::Bsi::Identifier::Collection', :type
5
+
6
+ attr_accessor :identifiers
7
+
8
+ def initialize(identifiers:, **args)
9
+ @identifiers = identifiers
10
+ super(publisher: nil, number: nil, **args)
11
+ end
12
+
13
+ def self.type
14
+ { key: :collection, title: "Collection" }
15
+ end
16
+
17
+ def to_s
18
+ Renderer::Collection.new(get_params).render
19
+ end
20
+ end
21
+ end
22
+ end
@@ -44,10 +44,14 @@ module Pubid::Bsi
44
44
  space >> str("PDF").as(:pdf)
45
45
  end
46
46
 
47
+ rule(:second_number) do
48
+ str("/") >> digits.as(:second_number)
49
+ end
50
+
47
51
  rule(:identifier) do
48
52
  str("BSI ").maybe >> type >> space >>
49
53
  (
50
- (digits.as(:number) >> part.maybe >> (space >> edition).maybe >>
54
+ (digits.as(:number) >> second_number.maybe >> part.maybe >> (space >> edition).maybe >>
51
55
  (space? >> str(":") >> year >> (dash >> month_digits.as(:month)).maybe).maybe) |
52
56
  # exclude expert_commentary and translation from adopted scope
53
57
  (expert_commentary.absent? >> translation.absent? >> space? >>
@@ -0,0 +1,15 @@
1
+ module Pubid::Bsi::Renderer
2
+ class Collection < Pubid::Core::Renderer::Base
3
+ def render_identifier(params)
4
+ "%{identifiers}%{year}%{supplement}" % params
5
+ end
6
+
7
+ def render_supplement(supplement, _opts, _params)
8
+ supplement.to_s
9
+ end
10
+
11
+ def render_identifiers(identifiers, _opts, _params)
12
+ "#{identifiers.first}/" + identifiers[1..-1].map(&:number).join("/")
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Bsi
3
- VERSION = "0.2.0".freeze
3
+ VERSION = "0.3.1".freeze
4
4
  end
5
5
  end
data/lib/pubid/bsi.rb CHANGED
@@ -22,6 +22,7 @@ require_relative "bsi/identifier/amendment"
22
22
  require_relative "bsi/identifier/corrigendum"
23
23
  require_relative "bsi/identifier/national_annex"
24
24
  require_relative "bsi/identifier/expert_commentary"
25
+ require_relative "bsi/identifier/collection"
25
26
  require_relative "bsi/renderer/base"
26
27
  require_relative "bsi/renderer/publicly_available_specification"
27
28
  require_relative "bsi/renderer/published_document"
@@ -31,6 +32,7 @@ require_relative "bsi/renderer/amendment"
31
32
  require_relative "bsi/renderer/corrigendum"
32
33
  require_relative "bsi/renderer/national_annex"
33
34
  require_relative "bsi/renderer/expert_commentary"
35
+ require_relative "bsi/renderer/collection"
34
36
  require_relative "bsi/parser"
35
37
  require_relative "bsi/identifier"
36
38
 
@@ -44,7 +46,8 @@ config.types = [Pubid::Bsi::Identifier::BritishStandard,
44
46
  Pubid::Bsi::Identifier::Amendment,
45
47
  Pubid::Bsi::Identifier::Corrigendum,
46
48
  Pubid::Bsi::Identifier::NationalAnnex,
47
- Pubid::Bsi::Identifier::ExpertCommentary]
49
+ Pubid::Bsi::Identifier::ExpertCommentary,
50
+ Pubid::Bsi::Identifier::Collection]
48
51
  config.type_names = {
49
52
  bs: {
50
53
  long: "British Standard",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pubid-bsi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.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: 2023-04-07 00:00:00.000000000 Z
11
+ date: 2023-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,48 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
- - !ruby/object:Gem::Dependency
42
- name: nokogiri
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: thor
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: lightly
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
41
  - !ruby/object:Gem::Dependency
84
42
  name: parslet
85
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,56 +58,56 @@ dependencies:
100
58
  requirements:
101
59
  - - "~>"
102
60
  - !ruby/object:Gem::Version
103
- version: 1.8.0
61
+ version: 1.8.6
104
62
  type: :runtime
105
63
  prerelease: false
106
64
  version_requirements: !ruby/object:Gem::Requirement
107
65
  requirements:
108
66
  - - "~>"
109
67
  - !ruby/object:Gem::Version
110
- version: 1.8.0
68
+ version: 1.8.6
111
69
  - !ruby/object:Gem::Dependency
112
70
  name: pubid-iso
113
71
  requirement: !ruby/object:Gem::Requirement
114
72
  requirements:
115
73
  - - "~>"
116
74
  - !ruby/object:Gem::Version
117
- version: 0.5.2
75
+ version: 0.6.0
118
76
  type: :runtime
119
77
  prerelease: false
120
78
  version_requirements: !ruby/object:Gem::Requirement
121
79
  requirements:
122
80
  - - "~>"
123
81
  - !ruby/object:Gem::Version
124
- version: 0.5.2
82
+ version: 0.6.0
125
83
  - !ruby/object:Gem::Dependency
126
84
  name: pubid-iec
127
85
  requirement: !ruby/object:Gem::Requirement
128
86
  requirements:
129
87
  - - "~>"
130
88
  - !ruby/object:Gem::Version
131
- version: 0.2.2
89
+ version: 0.2.5
132
90
  type: :runtime
133
91
  prerelease: false
134
92
  version_requirements: !ruby/object:Gem::Requirement
135
93
  requirements:
136
94
  - - "~>"
137
95
  - !ruby/object:Gem::Version
138
- version: 0.2.2
96
+ version: 0.2.5
139
97
  - !ruby/object:Gem::Dependency
140
98
  name: pubid-cen
141
99
  requirement: !ruby/object:Gem::Requirement
142
100
  requirements:
143
101
  - - "~>"
144
102
  - !ruby/object:Gem::Version
145
- version: 0.2.1
103
+ version: 0.2.2
146
104
  type: :runtime
147
105
  prerelease: false
148
106
  version_requirements: !ruby/object:Gem::Requirement
149
107
  requirements:
150
108
  - - "~>"
151
109
  - !ruby/object:Gem::Version
152
- version: 0.2.1
110
+ version: 0.2.2
153
111
  description: Library to generate, parse and manipulate ISO PubID.
154
112
  email:
155
113
  - open.source@ribose.com
@@ -168,6 +126,7 @@ files:
168
126
  - lib/pubid/bsi/identifier/amendment.rb
169
127
  - lib/pubid/bsi/identifier/base.rb
170
128
  - lib/pubid/bsi/identifier/british_standard.rb
129
+ - lib/pubid/bsi/identifier/collection.rb
171
130
  - lib/pubid/bsi/identifier/corrigendum.rb
172
131
  - lib/pubid/bsi/identifier/draft_document.rb
173
132
  - lib/pubid/bsi/identifier/expert_commentary.rb
@@ -178,6 +137,7 @@ files:
178
137
  - lib/pubid/bsi/parser.rb
179
138
  - lib/pubid/bsi/renderer/amendment.rb
180
139
  - lib/pubid/bsi/renderer/base.rb
140
+ - lib/pubid/bsi/renderer/collection.rb
181
141
  - lib/pubid/bsi/renderer/corrigendum.rb
182
142
  - lib/pubid/bsi/renderer/draft_document.rb
183
143
  - lib/pubid/bsi/renderer/expert_commentary.rb
@@ -207,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
167
  - !ruby/object:Gem::Version
208
168
  version: '0'
209
169
  requirements: []
210
- rubygems_version: 3.0.3.1
170
+ rubygems_version: 3.3.26
211
171
  signing_key:
212
172
  specification_version: 4
213
173
  summary: Library to generate, parse and manipulate ISO PubID.