pubid-core 1.1.1 → 1.2.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/core/identifier.rb +22 -4
- data/lib/pubid/core/supplement.rb +14 -14
- data/lib/pubid/core/transformer.rb +6 -6
- data/lib/pubid/core/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e9bf3dd3d9bc2b650200a864109ae197ab92914d1badcbf211d414b9b72d535
|
4
|
+
data.tar.gz: 65ceef880cc4e59dfa4cd059cd2b57090cfee8400cf26717f6bd480d3a29b7db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57670502ba1de60b88d0befb0933f990c37b3dd23544a5bd4889d2da0aea6086ea1d87032e9c547c2c5a9430037c3325d77149ebe36edf3a66c349ec3d734274
|
7
|
+
data.tar.gz: 1c9917b90d532faf17a601fea62ea18fe204098052b349b189067287877f29ba66dd2e244389b4b906d8772d33eced7aa2f204f61082a81aede616168e11b038
|
@@ -14,16 +14,34 @@ module Pubid::Core
|
|
14
14
|
# @param edition [Integer] document's edition, eg. "1"
|
15
15
|
# @param language [String] document's translation language
|
16
16
|
# (available languages: "ru", "fr", "en", "ar")
|
17
|
-
# @param amendments [Array<Amendment>] document's amendments
|
18
|
-
# @param corrigendums [Array<Corrigendum>] document's corrigendums
|
17
|
+
# @param amendments [Array<Amendment>,Array<Hash>] document's amendments
|
18
|
+
# @param corrigendums [Array<Corrigendum>,Array<Hash>] document's corrigendums
|
19
19
|
# @see Amendment
|
20
20
|
# @see Corrigendum
|
21
21
|
def initialize(publisher:, number:, copublisher: nil, part: nil, type: nil,
|
22
22
|
year: nil, edition: nil, language: nil, amendments: nil,
|
23
23
|
corrigendums: nil)
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
if amendments
|
26
|
+
@amendments = amendments.map do |amendment|
|
27
|
+
if amendment.is_a?(Hash)
|
28
|
+
self.class.get_transformer_class.new.apply(:amendments => [amendment])[:amendments].first
|
29
|
+
else
|
30
|
+
amendment
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
if corrigendums
|
36
|
+
@corrigendums = corrigendums.map do |corrigendum|
|
37
|
+
if corrigendum.is_a?(Hash)
|
38
|
+
self.class.get_transformer_class.new.apply(:corrigendums => [corrigendum])[:corrigendums].first
|
39
|
+
else
|
40
|
+
corrigendum
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
27
45
|
@publisher = publisher.to_s
|
28
46
|
@number = number
|
29
47
|
@copublisher = copublisher if copublisher
|
@@ -1,36 +1,36 @@
|
|
1
1
|
module Pubid::Core
|
2
2
|
class Supplement
|
3
3
|
include Comparable
|
4
|
-
attr_accessor :
|
4
|
+
attr_accessor :number, :year
|
5
5
|
|
6
|
-
# Creates new supplement with provided
|
7
|
-
# @param version [Integer]
|
6
|
+
# Creates new supplement with provided update number and optional year
|
8
7
|
# @param number [Integer]
|
9
|
-
|
10
|
-
|
8
|
+
# @param year [Integer]
|
9
|
+
def initialize(number:, year: nil)
|
10
|
+
@number, @year = number&.to_i, year&.to_i
|
11
11
|
end
|
12
12
|
|
13
13
|
def <=>(other)
|
14
|
-
return 0 if
|
14
|
+
return 0 if year.nil? && other.year
|
15
15
|
|
16
|
-
return
|
16
|
+
return year <=> other.year if number == other.number
|
17
17
|
|
18
|
-
(
|
18
|
+
(number <=> other.number) || year <=> other.year
|
19
19
|
end
|
20
20
|
|
21
21
|
def render_pubid_number
|
22
|
-
if @
|
23
|
-
"#{@
|
22
|
+
if @year
|
23
|
+
"#{@number}:#{@year}"
|
24
24
|
else
|
25
|
-
"#{@
|
25
|
+
"#{@number}"
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
def render_urn_number
|
30
|
-
if @
|
31
|
-
":#{@
|
30
|
+
if @year
|
31
|
+
":#{@year}:v#{@number}"
|
32
32
|
else
|
33
|
-
":#{@
|
33
|
+
":#{@number}:v1"
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -16,13 +16,13 @@ module Pubid::Core
|
|
16
16
|
rule(amendments: subtree(:amendments)) do |context|
|
17
17
|
if context[:amendments].is_a?(Array)
|
18
18
|
context[:amendments] = context[:amendments].map do |amendment|
|
19
|
-
self.class.get_amendment_class.new(
|
19
|
+
self.class.get_amendment_class.new(number: amendment[:number], year: amendment[:year])
|
20
20
|
end
|
21
21
|
else
|
22
22
|
context[:amendments] =
|
23
23
|
[self.class.get_amendment_class.new(
|
24
|
-
|
25
|
-
|
24
|
+
number: context[:amendments][:number],
|
25
|
+
year: context[:amendments][:year])]
|
26
26
|
|
27
27
|
end
|
28
28
|
context
|
@@ -31,13 +31,13 @@ module Pubid::Core
|
|
31
31
|
rule(corrigendums: subtree(:corrigendums)) do |context|
|
32
32
|
if context[:corrigendums].is_a?(Array)
|
33
33
|
context[:corrigendums] = context[:corrigendums].map do |corrigendum|
|
34
|
-
self.class.get_corrigendum_class.new(
|
34
|
+
self.class.get_corrigendum_class.new(number: corrigendum[:number], year: corrigendum[:year])
|
35
35
|
end
|
36
36
|
else
|
37
37
|
context[:corrigendums] =
|
38
38
|
[self.class.get_corrigendum_class.new(
|
39
|
-
|
40
|
-
|
39
|
+
number: context[:corrigendums][:number],
|
40
|
+
year: context[:corrigendums][:year])]
|
41
41
|
end
|
42
42
|
context
|
43
43
|
end
|
data/lib/pubid/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubid-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.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: 2022-09-
|
11
|
+
date: 2022-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|