pubid-cen 0.1.1 → 0.2.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/cen/identifier/base.rb +5 -4
- data/lib/pubid/cen/identifier/corrigendum.rb +2 -2
- data/lib/pubid/cen/parser.rb +8 -2
- data/lib/pubid/cen/renderer/base.rb +2 -0
- data/lib/pubid/cen/transformer.rb +6 -0
- data/lib/pubid/cen/version.rb +1 -1
- data/lib/pubid/cen.rb +2 -0
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 670ef1b7391c8d5b2f576a67f7da3f3320094778302898603ee9fb819d5d8b8e
|
4
|
+
data.tar.gz: bb1aa27c00811ad9b111da9c97f0f3b9190cc328b632361ed1314c36a26541e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94795c4877fcf2d970377ce2455fda3f8abda4b54bd31f203d692fa1e1f9bae1fe00203f7623e343810c41ac372215727f166a22d62b6b04bd225f51dbe7f9ab
|
7
|
+
data.tar.gz: 21bd2bd896f9ad6de4fe3f9b8f9fa1e5ace3c2186e758d691a23172c6951b95b6b650afd8769445268c47e6f18222ca262c66373347a484c57e675da3caa4e46
|
@@ -4,8 +4,7 @@ module Pubid::Cen
|
|
4
4
|
module Identifier
|
5
5
|
class Base < Pubid::Core::Identifier::Base
|
6
6
|
extend Forwardable
|
7
|
-
|
8
|
-
attr_accessor :supplements
|
7
|
+
attr_accessor :supplements, :adopted
|
9
8
|
|
10
9
|
def self.type
|
11
10
|
{ key: :en, title: "European Norm" }
|
@@ -13,11 +12,13 @@ module Pubid::Cen
|
|
13
12
|
|
14
13
|
# @param month [Integer] document's month
|
15
14
|
# @param edition [String] document's edition version, e.g. "3.0", "1.0"
|
16
|
-
def initialize(publisher: "EN", part: nil, stage: nil,
|
17
|
-
|
15
|
+
def initialize(number: nil, publisher: "EN", part: nil, stage: nil,
|
16
|
+
incorporated_supplements: nil, adopted: nil, **opts)
|
17
|
+
super(**opts.merge(publisher: publisher, number: number))
|
18
18
|
@part = part if part
|
19
19
|
@stage = Identifier.parse_stage(stage) if stage
|
20
20
|
@supplements = incorporated_supplements
|
21
|
+
@adopted = adopted
|
21
22
|
end
|
22
23
|
|
23
24
|
class << self
|
@@ -4,8 +4,8 @@ module Pubid::Cen
|
|
4
4
|
def_delegators 'Pubid::Cen::Identifier::Corrigendum', :type
|
5
5
|
attr_accessor :base
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
super(**opts
|
7
|
+
def initialize(base: nil, **opts)
|
8
|
+
super(**opts)
|
9
9
|
@base = base
|
10
10
|
end
|
11
11
|
|
data/lib/pubid/cen/parser.rb
CHANGED
@@ -38,8 +38,14 @@ module Pubid::Cen
|
|
38
38
|
end
|
39
39
|
|
40
40
|
rule(:identifier) do
|
41
|
-
stage.maybe >> originator.maybe >> type.maybe >> space >> digits.as(:number) >> part >>
|
42
|
-
(str(":") >> year).maybe
|
41
|
+
stage.maybe >> originator.maybe >> ((type.maybe >> space >> digits.as(:number) >> part >>
|
42
|
+
(str(":") >> year).maybe) | (space >> (match("[^+/]").repeat(1) >>
|
43
|
+
# XXX: hack to match part after "/" for identifiers like
|
44
|
+
# EN ISO/IEC 80079-34:2020 ED2
|
45
|
+
# but march only part before "/" for identifiers like
|
46
|
+
# EN ISO 13485:2016/AC:2016
|
47
|
+
(supplement.absent? >> match("[^+]").repeat(1)).maybe).as(:adopted))) >>
|
48
|
+
supplement.maybe >> incorporated_supplement.repeat
|
43
49
|
end
|
44
50
|
|
45
51
|
rule(:root) { identifier }
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Pubid::Cen::Renderer
|
2
2
|
class Base < Pubid::Core::Renderer::Base
|
3
3
|
def render_identifier(params)
|
4
|
+
return "%{publisher} %{adopted}%{supplements}" % params unless params[:adopted].to_s.empty?
|
5
|
+
|
4
6
|
"%{stage}%{publisher}%{type} %{number}%{part}%{year}%{supplements}" % params
|
5
7
|
end
|
6
8
|
|
@@ -19,6 +19,12 @@ module Pubid::Cen
|
|
19
19
|
context
|
20
20
|
end
|
21
21
|
|
22
|
+
rule(adopted: subtree(:adopted)) do |context|
|
23
|
+
{ adopted: Pubid::Iec::Identifier.parse(context[:adopted].to_s) }
|
24
|
+
rescue Pubid::Core::Errors::ParseError
|
25
|
+
{ adopted: Pubid::Iso::Identifier.parse(context[:adopted].to_s) }
|
26
|
+
end
|
27
|
+
|
22
28
|
def self.convert_supplement(supplement)
|
23
29
|
case supplement[:type]
|
24
30
|
when "A"
|
data/lib/pubid/cen/version.rb
CHANGED
data/lib/pubid/cen.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubid-cen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.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-04-
|
11
|
+
date: 2023-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -108,6 +108,34 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.8.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pubid-iso
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.5.2
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.5.2
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pubid-iec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.2.2
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.2.2
|
111
139
|
description: Library to generate, parse and manipulate CEN PubID.
|
112
140
|
email:
|
113
141
|
- open.source@ribose.com
|