pubid-iho 1.15.15 → 1.15.16

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: 506badb3e4667351b93e3fda4d100fb1a5dd5417a1ecea86089c59fd9e1b0094
4
- data.tar.gz: e05b9e5659d947d92375ad55cc2afaec6948f2a2c6f1728f4c09b7c25dbf7088
3
+ metadata.gz: dba70173e8503455f343e9b8e5e3a968019f915a018ab3e0cc092fb790740570
4
+ data.tar.gz: c30012dd679b4c9c8ecfa4baffda8b81052f26285d8a170e78a9b726806713b6
5
5
  SHA512:
6
- metadata.gz: 60f890917c141e8020e2bb26baa06bbd6122c5433d2bd1446c684bdefa26ac35089e70eac3582dd0271d5ae265efe60b7934d9826a9c17645013e99a39f73ee6
7
- data.tar.gz: 0a0872043297042534cb6c3d97f5fc07f6dec23348c8b5046971e489d9f44425f8067ea9c0de0598adfb910f921d6880945626118c785922240398aaf64eef8e
6
+ metadata.gz: 8e390527143e07ce10e79e66b55baf2c771882516aac0b1ad69d4145ba6a2e4590245c2f439fca7fd13bd0b395bd84216d03164a490d6d38a28af5dfdabb6339
7
+ data.tar.gz: 26cb6f33f5f72274e43e9400638db171fa8e418e21181ca828216c9106cf7f2e05e69c937e6d29ee2f5bf0bf0cecdc445c5c172e848406b409b922f4346b5686
@@ -1,17 +1,19 @@
1
1
  module Pubid::Iho
2
2
  module Identifier
3
3
  class Base < Pubid::Core::Identifier::Base
4
- attr_accessor :version, :appendix
4
+ attr_accessor :version, :appendix, :annex, :supplement
5
5
 
6
6
  def self.type
7
7
  { key: :iho }
8
8
  end
9
9
 
10
- def initialize(type:, publisher: "IHO", version: nil, part: nil, appendix: nil, **opts)
10
+ def initialize(type:, publisher: "IHO", version: nil, part: nil, appendix: nil, annex: nil, supplement: nil, **opts)
11
11
  super(**opts.merge(publisher: publisher))
12
12
  @part = part.to_s if part
13
13
  @version = version.to_s if version
14
14
  @appendix = appendix.to_s if appendix
15
+ @annex = annex.to_s if annex
16
+ @supplement = supplement.to_s if supplement
15
17
  if type
16
18
  unless Identifier.config.type_names.map { |_, v| v[:short] }.include?(type.to_s)
17
19
  raise Pubid::Core::Errors::WrongTypeError, "Type '#{type}' is not available"
@@ -13,7 +13,12 @@ module Pubid::Iho
13
13
  end
14
14
 
15
15
  rule(:appendix) do
16
- space >> str("Ap.") >> space >> (digits | match("[A-Z]")).as(:appendix)
16
+ space >> (str("Appendix") | str("Ap.")) >> space >>
17
+ (
18
+ (match("[A-Z]") >> dash >> digits) |
19
+ digits |
20
+ match("[A-Z]")
21
+ ).as(:appendix)
17
22
  end
18
23
 
19
24
  rule(:part) do
@@ -24,13 +29,21 @@ module Pubid::Iho
24
29
  )
25
30
  end
26
31
 
32
+ rule(:annex) do
33
+ space >> str("Annex") >> space >> match("[A-Z]").as(:annex)
34
+ end
35
+
36
+ rule(:supplement) do
37
+ space >> str("Suppl") >> space >> digits.as(:supplement)
38
+ end
39
+
27
40
  rule(:version) do
28
41
  space >> (digits >> dot >> digits >> dot >> digits).as(:version)
29
42
  end
30
43
 
31
44
  rule(:identifier) do
32
45
  (str("IHO") >> space).maybe >> series >> dash >> number >>
33
- appendix.maybe >> part.maybe >> version.maybe
46
+ appendix.maybe >> part.maybe >> annex.maybe >> supplement.maybe >> version.maybe
34
47
  end
35
48
 
36
49
  rule(:root) { identifier }
@@ -1,7 +1,7 @@
1
1
  module Pubid::Iho::Renderer
2
2
  class Base < Pubid::Core::Renderer::Base
3
3
  def render_identifier(params)
4
- "%{publisher} %{type}-%{number}%{appendix}%{part}%{version}" % params
4
+ "%{publisher} %{type}-%{number}%{appendix}%{part}%{annex}%{supplement}%{version}" % params
5
5
  end
6
6
 
7
7
  def render_part(part, _opts, _params)
@@ -12,6 +12,14 @@ module Pubid::Iho::Renderer
12
12
  " Ap. #{appendix}"
13
13
  end
14
14
 
15
+ def render_annex(annex, _opts, _params)
16
+ " Annex #{annex}"
17
+ end
18
+
19
+ def render_supplement(supplement, _opts, _params)
20
+ " Suppl #{supplement}"
21
+ end
22
+
15
23
  def render_version(version, _opts, _params)
16
24
  " #{version}"
17
25
  end
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Iho
3
- VERSION = "1.15.15".freeze
3
+ VERSION = "1.15.16".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pubid-iho
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.15
4
+ version: 1.15.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-04-28 00:00:00.000000000 Z
11
+ date: 2026-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.15.15
33
+ version: 1.15.16
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.15.15
40
+ version: 1.15.16
41
41
  description: Library to generate, parse and manipulate IHO PubID.
42
42
  email:
43
43
  - open.source@ribose.com