pubid-bsi 0.2.0 → 0.3.0
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 +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93e79aa30559f8e41d5b9cb74e4b3d5e808188a615d8f3311fadfdf6709d58e4
|
4
|
+
data.tar.gz: e544f503afb1e40eb7ba2cec6efa945357bac3e72234e0ffe05f5f87ce2c07ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cde8daf524af5296c9ed7ace2eb757b47ddeec768eee945d47a7eb3d305e12fa1495d9a88497a63ee6895bd4e12cdaa49a0d578fb44599252739d3e975a4da2
|
7
|
+
data.tar.gz: 208451435217ad215d3209799d929d14329cc7d026e4d532667732a4900b227327190ea78fdf39ed8cdf57fb3903abed97223bfbe49308630cc3fa8de44189c8
|
@@ -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.0
|
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-
|
11
|
+
date: 2023-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- lib/pubid/bsi/identifier/amendment.rb
|
169
169
|
- lib/pubid/bsi/identifier/base.rb
|
170
170
|
- lib/pubid/bsi/identifier/british_standard.rb
|
171
|
+
- lib/pubid/bsi/identifier/collection.rb
|
171
172
|
- lib/pubid/bsi/identifier/corrigendum.rb
|
172
173
|
- lib/pubid/bsi/identifier/draft_document.rb
|
173
174
|
- lib/pubid/bsi/identifier/expert_commentary.rb
|
@@ -178,6 +179,7 @@ files:
|
|
178
179
|
- lib/pubid/bsi/parser.rb
|
179
180
|
- lib/pubid/bsi/renderer/amendment.rb
|
180
181
|
- lib/pubid/bsi/renderer/base.rb
|
182
|
+
- lib/pubid/bsi/renderer/collection.rb
|
181
183
|
- lib/pubid/bsi/renderer/corrigendum.rb
|
182
184
|
- lib/pubid/bsi/renderer/draft_document.rb
|
183
185
|
- lib/pubid/bsi/renderer/expert_commentary.rb
|