pubid-bsi 0.2.0 → 0.3.0

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: 93e79aa30559f8e41d5b9cb74e4b3d5e808188a615d8f3311fadfdf6709d58e4
4
+ data.tar.gz: e544f503afb1e40eb7ba2cec6efa945357bac3e72234e0ffe05f5f87ce2c07ad
5
5
  SHA512:
6
- metadata.gz: 68a2ab714684c24481819a353529a69bdb1f891395a9ce61915610d14860ad0b3b552e4bdf26e3ff84dbff7a17bd951631c19e8f260c15c2883479793fda2d1f
7
- data.tar.gz: 4d8215a02e26eee04cd7240f2351ac089ab19117a6e100725045b6b79f555369ae4b8f242e27abbb661384b08e3fa0c0a6d80cb22334ff4e995b29d3602e34b1
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
@@ -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.0".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.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-07 00:00:00.000000000 Z
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