pubid-cen 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9e1da29b88d15117361e26282da95f073c8027ff11e82b1dc2e68a8e5481231f
4
+ data.tar.gz: 4e262d7c9e52228f282e82b794d6036a7fdf85d59854fa6be1025da067af54ed
5
+ SHA512:
6
+ metadata.gz: 210ce4b95af59951c42d34cadfafe657b07af6ea3fe29bf7a3c82453fb7c0e4552b1f4f04e26f1852ae9b7e0785ed94e386743da07ff2f0b3641b31c3496602e
7
+ data.tar.gz: c6f3e4cc992bb794e619d30bf9eef992f5bddb5dc7dd1c91f7675439db78ed5e62a7103b3ad444385a2e11a14db985a5d8483920c113345a064940f192580877
data/LICENSE.txt ADDED
@@ -0,0 +1,25 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2018, Ribose
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
20
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.adoc ADDED
@@ -0,0 +1,26 @@
1
+ = JIS publication identifiers ("CEN PubID")
2
+
3
+ == Purpose
4
+
5
+ This gem implements a mechanism to parse and utilize CEN publication
6
+ identifiers.
7
+
8
+ == Use cases to support
9
+
10
+ . generate updated PubID
11
+
12
+ == Usage
13
+
14
+ === Identifier creation
15
+
16
+ Basic usage of the pubid-cen gem starts with the `Identifier#create` method.
17
+
18
+ [source,ruby]
19
+ ----
20
+ require "pubid-cen"
21
+
22
+ pubid = Pubid::Cen::Identifier.create(number: 1234, part: 1, year: 1999)
23
+ pubid.to_s
24
+
25
+ => "EN 1234-1:1999"
26
+ ----
@@ -0,0 +1,5 @@
1
+ module Pubid::Cen
2
+ module Errors
3
+ class ParseTypeError < StandardError; end
4
+ end
5
+ end
@@ -0,0 +1,21 @@
1
+ module Pubid::Cen
2
+ module Identifier
3
+ class Amendment < Base
4
+ def_delegators 'Pubid::Cen::Identifier::Amendment', :type
5
+ attr_accessor :base
6
+
7
+ def initialize(base: nil, **opts)
8
+ super(**opts)
9
+ @base = base
10
+ end
11
+
12
+ def self.type
13
+ { key: :amd, title: "Amendment" }
14
+ end
15
+
16
+ def self.get_renderer_class
17
+ Renderer::Amendment
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,60 @@
1
+ require 'forwardable'
2
+
3
+ module Pubid::Cen
4
+ module Identifier
5
+ class Base < Pubid::Core::Identifier::Base
6
+ extend Forwardable
7
+
8
+ attr_accessor :supplements
9
+
10
+ def self.type
11
+ { key: :en, title: "European Norm" }
12
+ end
13
+
14
+ # @param month [Integer] document's month
15
+ # @param edition [String] document's edition version, e.g. "3.0", "1.0"
16
+ def initialize(publisher: "EN", part: nil, stage: nil, incorporated_supplements: nil, **opts)
17
+ super(**opts.merge(publisher: publisher))
18
+ @part = part if part
19
+ @stage = Identifier.parse_stage(stage) if stage
20
+ @supplements = incorporated_supplements
21
+ end
22
+
23
+ class << self
24
+ def transform(params)
25
+ identifier_params = params.map do |k, v|
26
+ get_transformer_class.new.apply(k => v)
27
+ end.inject({}, :merge)
28
+
29
+ if identifier_params[:supplement]
30
+ return transform_supplement(
31
+ identifier_params[:supplement],
32
+ identifier_params.dup.tap { |h| h.delete(:supplement) }
33
+ )
34
+ end
35
+
36
+ Identifier.create(**identifier_params)
37
+ end
38
+
39
+ def transform_supplement(supplement_params, base_params)
40
+ Identifier.create(number: supplement_params[:number],
41
+ year: supplement_params[:year],
42
+ type: supplement_params[:type],
43
+ base: Identifier.create(**base_params))
44
+ end
45
+
46
+ def get_parser_class
47
+ Parser
48
+ end
49
+
50
+ def get_renderer_class
51
+ Renderer::Base
52
+ end
53
+
54
+ def get_transformer_class
55
+ Transformer
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "../renderer/guide"
2
+
3
+ module Pubid::Cen
4
+ module Identifier
5
+ class CenWorkshopAgreement < Base
6
+ def_delegators 'Pubid::Cen::Identifier::CenWorkshopAgreement', :type
7
+
8
+ def self.get_renderer_class
9
+ Renderer::CenWorkshopAgreement
10
+ end
11
+
12
+ def self.type
13
+ { key: :cwa, title: "Cen Workshop Agreement", short: "CWA" }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ module Pubid::Cen
2
+ module Identifier
3
+ class Corrigendum < Base
4
+ def_delegators 'Pubid::Cen::Identifier::Corrigendum', :type
5
+ attr_accessor :base
6
+
7
+ def initialize(number: nil, base: nil, **opts)
8
+ super(**opts.merge(number: number))
9
+ @base = base
10
+ end
11
+
12
+ def self.type
13
+ { key: :cor, title: "corrigendum" }
14
+ end
15
+
16
+ def self.get_renderer_class
17
+ Renderer::Corrigendum
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "../renderer/guide"
2
+
3
+ module Pubid::Cen
4
+ module Identifier
5
+ class Guide < Base
6
+ def_delegators 'Pubid::Cen::Identifier::Guide', :type
7
+
8
+ def self.get_renderer_class
9
+ Renderer::Guide
10
+ end
11
+
12
+ def self.type
13
+ { key: :guide, title: "Guide", short: "Guide" }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "../renderer/guide"
2
+
3
+ module Pubid::Cen
4
+ module Identifier
5
+ class HarmonizationDocument < Base
6
+ def_delegators 'Pubid::Cen::Identifier::HarmonizationDocument', :type
7
+
8
+ def self.get_renderer_class
9
+ Renderer::HarmonizationDocument
10
+ end
11
+
12
+ def self.type
13
+ { key: :hd, title: "Harmonization Document", short: "HD" }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "../renderer/technical_report"
2
+
3
+ module Pubid::Cen
4
+ module Identifier
5
+ class TechnicalReport < Base
6
+ def_delegators 'Pubid::Cen::Identifier::TechnicalReport', :type
7
+
8
+ def self.type
9
+ { key: :tr, title: "Technical Report", short: "TR" }
10
+ end
11
+
12
+ def self.get_renderer_class
13
+ Renderer::TechnicalReport
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "../renderer/technical_specification"
2
+
3
+ module Pubid::Cen
4
+ module Identifier
5
+ class TechnicalSpecification < Base
6
+ def_delegators 'Pubid::Cen::Identifier::TechnicalSpecification', :type
7
+
8
+ def self.type
9
+ { key: :ts, title: "Technical Specification", short: "TS" }
10
+ end
11
+
12
+ def self.get_renderer_class
13
+ Renderer::TechnicalSpecification
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ module Pubid::Cen
2
+ module Identifier
3
+ class << self
4
+ include Pubid::Core::Identifier
5
+
6
+ # @see Pubid::Identifier::Base.parse
7
+ def parse(*args)
8
+ Base.parse(*args)
9
+ end
10
+
11
+ def resolve_identifier(parameters = {})
12
+ return @config.default_type.new(**parameters) if parameters[:type].nil?
13
+
14
+ @config.types.each do |identifier_type|
15
+ return identifier_type.new(**parameters) if identifier_type.type_match?(parameters)
16
+ end
17
+
18
+ raise Errors::ParseTypeError, "cannot parse type #{parameters[:type]}"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,47 @@
1
+ module Pubid::Cen
2
+ class Parser < Pubid::Core::Parser
3
+ rule(:part) do
4
+ (str("-") >> digits.as(:part)).repeat
5
+ end
6
+
7
+ rule(:organization) do
8
+ str("EN") | str("CEN") | str("CLC")
9
+ end
10
+
11
+ rule(:originator) do
12
+ organization.as(:publisher) >>
13
+ (space? >> (str("/") | str("-")) >> organization.as(:copublisher)).repeat
14
+ end
15
+
16
+ rule(:type) do
17
+ (str("/") | space).maybe >>
18
+ array_to_str(
19
+ Identifier.config.types.map { |type| [type.type[:short], type.type[:short]&.upcase] }
20
+ .flatten.compact).as(:type)
21
+ end
22
+
23
+ rule(:stage) do
24
+ (str("pr") | str("Fpr")).as(:stage)
25
+ end
26
+
27
+ rule(:supplement_matcher) do
28
+ ((str("AC").as(:type) >> digits.as(:number).maybe) |
29
+ (str("A").as(:type) >> digits.as(:number))) >> str(":") >> year
30
+ end
31
+
32
+ rule(:incorporated_supplement) do
33
+ str("+") >> supplement_matcher.as(:incorporated_supplements)
34
+ end
35
+
36
+ rule(:supplement) do
37
+ str("/") >> supplement_matcher.as(:supplement)
38
+ end
39
+
40
+ rule(:identifier) do
41
+ stage.maybe >> originator.maybe >> type.maybe >> space >> digits.as(:number) >> part >>
42
+ (str(":") >> year).maybe >> supplement.maybe >> incorporated_supplement.repeat
43
+ end
44
+
45
+ rule(:root) { identifier }
46
+ end
47
+ end
@@ -0,0 +1,15 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen
4
+ module Renderer
5
+ class Amendment < Pubid::Core::Renderer::Base
6
+ def render_identifier(params)
7
+ if params[:base].is_a?(Identifier::Base)
8
+ "%{base}/A%{number}%{year}" % params
9
+ else
10
+ "+A%{number}%{year}" % params
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,25 @@
1
+ module Pubid::Cen::Renderer
2
+ class Base < Pubid::Core::Renderer::Base
3
+ def render_identifier(params)
4
+ "%{stage}%{publisher}%{type} %{number}%{part}%{year}%{supplements}" % params
5
+ end
6
+
7
+ def render_type(type, _opts, _params)
8
+ ""
9
+ end
10
+
11
+ def render_part(part, opts, _params)
12
+ return "-#{part.reverse.join('-')}" if part.is_a?(Array)
13
+
14
+ "-#{part}"
15
+ end
16
+
17
+ def sort_supplements(supplements)
18
+ supplements.sort_by { |a| (a.year * 100) + a.number.to_i }
19
+ end
20
+
21
+ def render_supplements(supplements, _opts, _params)
22
+ sort_supplements(supplements).join
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen::Renderer
4
+ class CenWorkshopAgreement < Base
5
+ def render_publisher(publisher, _opts, params)
6
+ ""
7
+ end
8
+
9
+ def render_type(type, _opts, _params)
10
+ "CWA"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen
4
+ module Renderer
5
+ class Corrigendum < Pubid::Core::Renderer::Base
6
+ def render_identifier(params)
7
+ if params[:base].is_a?(Identifier::Base)
8
+ "%{base}/AC%{number}%{year}" % params
9
+ else
10
+ "+AC%{number}%{year}" % params
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen::Renderer
4
+ class Guide < Base
5
+ def render_type(type, _opts, _params)
6
+ " Guide"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen::Renderer
4
+ class HarmonizationDocument < Base
5
+ def render_publisher(publisher, _opts, params)
6
+ ""
7
+ end
8
+
9
+ def render_type(type, _opts, _params)
10
+ "HD"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen::Renderer
4
+ class TechnicalReport < Base
5
+ def render_type(type, _opts, _params)
6
+ "/TR"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require_relative "base"
2
+
3
+ module Pubid::Cen::Renderer
4
+ class TechnicalSpecification < Base
5
+ def render_type(type, _opts, _params)
6
+ "/TS"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,40 @@
1
+ require_relative "identifier/base"
2
+ require_relative "renderer/base"
3
+
4
+ module Pubid::Cen
5
+ class Transformer < Parslet::Transform
6
+ rule(incorporated_supplements: subtree(:incorporated_supplements)) do |context|
7
+ if context[:incorporated_supplements].is_a?(Array)
8
+ { incorporated_supplements: context[:incorporated_supplements].map do |supplement|
9
+ convert_supplement(supplement)
10
+ end
11
+ }
12
+ else
13
+ { incorporated_supplements: [convert_supplement(context[:incorporated_supplements])] }
14
+ end
15
+ end
16
+
17
+ rule(supplement: subtree(:supplement)) do |context|
18
+ context[:supplement][:type] = convert_supplement_type(context[:supplement][:type])
19
+ context
20
+ end
21
+
22
+ def self.convert_supplement(supplement)
23
+ case supplement[:type]
24
+ when "A"
25
+ Identifier::Amendment.new(**supplement)
26
+ when "AC"
27
+ Identifier::Corrigendum.new(**supplement)
28
+ end
29
+ end
30
+
31
+ def self.convert_supplement_type(type)
32
+ case type
33
+ when "A"
34
+ :amd
35
+ when "AC"
36
+ :cor
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,5 @@
1
+ module Pubid
2
+ module Cen
3
+ VERSION = "0.1.1".freeze
4
+ end
5
+ end
data/lib/pubid/cen.rb ADDED
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "parslet"
4
+
5
+ module Pubid
6
+ end
7
+
8
+ require "pubid-core"
9
+
10
+ require_relative "cen/errors"
11
+ require_relative "cen/transformer"
12
+ require_relative "cen/identifier/base"
13
+ require_relative "cen/identifier/technical_specification"
14
+ require_relative "cen/identifier/technical_report"
15
+ require_relative "cen/identifier/guide"
16
+ require_relative "cen/identifier/amendment"
17
+ require_relative "cen/identifier/corrigendum"
18
+ require_relative "cen/identifier/cen_workshop_agreement"
19
+ require_relative "cen/identifier/harmonization_document"
20
+ require_relative "cen/renderer/base"
21
+ require_relative "cen/renderer/technical_specification"
22
+ require_relative "cen/renderer/technical_report"
23
+ require_relative "cen/renderer/guide"
24
+ require_relative "cen/renderer/amendment"
25
+ require_relative "cen/renderer/corrigendum"
26
+ require_relative "cen/renderer/cen_workshop_agreement"
27
+ require_relative "cen/renderer/harmonization_document"
28
+ require_relative "cen/parser"
29
+ require_relative "cen/identifier"
30
+
31
+ config = Pubid::Core::Configuration.new
32
+ config.default_type = Pubid::Cen::Identifier::Base
33
+ config.types = [Pubid::Cen::Identifier::Base,
34
+ Pubid::Cen::Identifier::TechnicalSpecification,
35
+ Pubid::Cen::Identifier::TechnicalReport,
36
+ Pubid::Cen::Identifier::Guide,
37
+ Pubid::Cen::Identifier::Amendment,
38
+ Pubid::Cen::Identifier::Corrigendum,
39
+ Pubid::Cen::Identifier::CenWorkshopAgreement,
40
+ Pubid::Cen::Identifier::HarmonizationDocument]
41
+ config.type_names = {}.freeze
42
+ config.stages = { "abbreviations" => { "Fpr" => [], "pr" => [] } }
43
+
44
+ Pubid::Cen::Identifier.set_config(config)
data/lib/pubid-cen.rb ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "pubid/cen"
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pubid-cen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Ribose Inc.
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '13.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '13.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
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
+ - !ruby/object:Gem::Dependency
84
+ name: parslet
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pubid-core
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.8.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.8.0
111
+ description: Library to generate, parse and manipulate CEN PubID.
112
+ email:
113
+ - open.source@ribose.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files:
117
+ - README.adoc
118
+ - LICENSE.txt
119
+ files:
120
+ - LICENSE.txt
121
+ - README.adoc
122
+ - lib/pubid-cen.rb
123
+ - lib/pubid/cen.rb
124
+ - lib/pubid/cen/errors.rb
125
+ - lib/pubid/cen/identifier.rb
126
+ - lib/pubid/cen/identifier/amendment.rb
127
+ - lib/pubid/cen/identifier/base.rb
128
+ - lib/pubid/cen/identifier/cen_workshop_agreement.rb
129
+ - lib/pubid/cen/identifier/corrigendum.rb
130
+ - lib/pubid/cen/identifier/guide.rb
131
+ - lib/pubid/cen/identifier/harmonization_document.rb
132
+ - lib/pubid/cen/identifier/technical_report.rb
133
+ - lib/pubid/cen/identifier/technical_specification.rb
134
+ - lib/pubid/cen/parser.rb
135
+ - lib/pubid/cen/renderer/amendment.rb
136
+ - lib/pubid/cen/renderer/base.rb
137
+ - lib/pubid/cen/renderer/cen_workshop_agreement.rb
138
+ - lib/pubid/cen/renderer/corrigendum.rb
139
+ - lib/pubid/cen/renderer/guide.rb
140
+ - lib/pubid/cen/renderer/harmonization_document.rb
141
+ - lib/pubid/cen/renderer/technical_report.rb
142
+ - lib/pubid/cen/renderer/technical_specification.rb
143
+ - lib/pubid/cen/transformer.rb
144
+ - lib/pubid/cen/version.rb
145
+ homepage: https://github.com/metanorma/pubid-cen
146
+ licenses:
147
+ - BSD-2-Clause
148
+ metadata: {}
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: 2.5.0
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubygems_version: 3.0.3.1
165
+ signing_key:
166
+ specification_version: 4
167
+ summary: Library to generate, parse and manipulate CEN PubID.
168
+ test_files: []