pubid-bsi 0.2.0 → 0.3.1

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: 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.