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 +4 -4
- data/lib/pubid/bsi/identifier/base.rb +12 -0
- data/lib/pubid/bsi/identifier/collection.rb +22 -0
- data/lib/pubid/bsi/parser.rb +5 -1
- data/lib/pubid/bsi/renderer/collection.rb +15 -0
- data/lib/pubid/bsi/version.rb +1 -1
- data/lib/pubid/bsi.rb +4 -1
- metadata +13 -53
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdf480ac6bf4dbd931083f12b08fd6cff1bb92ef22efde2a19bc224b0cd31210
|
4
|
+
data.tar.gz: 3f7db131a28ad7162f6973faf6be1d0fff9499b27a5a78daf4b1bf47495aaf89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/pubid/bsi/parser.rb
CHANGED
@@ -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
|
data/lib/pubid/bsi/version.rb
CHANGED
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|