pubid-core 1.8.4 → 1.8.6

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: b39e42a4a1196d8f3510d93cec936eeef930c49119acf0c898c927fd2c14c12a
4
- data.tar.gz: 22dbb10b9190cf3d3fb7c4e5ac0a4975f984483434c54572b94db3af8beb17e7
3
+ metadata.gz: 97aa518f45d87f5bff0afa474a3db2057a3071e655915c83db8aaf38c911fe88
4
+ data.tar.gz: f4ea4f74981a8624ed81a622a57634269d0efde5068f1d4385baf131670074ed
5
5
  SHA512:
6
- metadata.gz: 914b8dc3a40f13b95e607bc653e117a6eaecc532fc744dfdb3ef79ff6a01051aaa389db3e1181d107d8365b38704e8d5f3521eed355b14c4bddb5d4b40df5172
7
- data.tar.gz: 9f5c42f3d069cf23d58bb5361b04296a76be68b2766995d5965c8238c56279fe5f51dd8d72f8aec1abddabc515a69ae753fdafd5b6d5bd665540f7d2aaab9730
6
+ metadata.gz: a1ee5291d1973c694f48ba299040c9ac5b22f592d3904fc729444e7df4b1dca204af1ee29cd06dd047fa0bb3efad35c232091e85ca0da000fce69d3d5c8ad36e
7
+ data.tar.gz: 5525d84fb8ea848218849cbdaefba98e8bc9533be22edd41a5fef1f46c8b3ae1ffa3a060ad5b901327a4a00bcd87c486da239faea7cddee909748eb74d63aef7
@@ -94,7 +94,7 @@ module Pubid::Core
94
94
  params.inject({}) do |r, i|
95
95
  result = r
96
96
  i.each do |k, v|
97
- result = result.merge(k => r.key?(k) ? [v, r[k]].flatten : v)
97
+ result = result.merge(k => r.key?(k) ? [r[k], v].flatten : v)
98
98
  end
99
99
  result
100
100
  end
@@ -41,6 +41,29 @@ module Pubid::Core
41
41
  end
42
42
  context
43
43
  end
44
+
45
+ rule(roman_numerals: simple(:roman_numerals)) do |context|
46
+ roman_to_int(context[:roman_numerals])
47
+ end
48
+ end
49
+
50
+ ROMAN_TO_INT = {
51
+ "I" => 1,
52
+ "V" => 5,
53
+ "X" => 10,
54
+ "L" => 50,
55
+ "C" => 100,
56
+ "D" => 500,
57
+ "M" => 1000,
58
+ }
59
+
60
+ def roman_to_int(roman)
61
+ sum = ROMAN_TO_INT[roman.to_s[0]]
62
+ roman.to_s.chars.each_cons(2) do |c1, c2|
63
+ sum += ROMAN_TO_INT[c2]
64
+ sum -= ROMAN_TO_INT[c1] * 2 if ROMAN_TO_INT[c1] < ROMAN_TO_INT[c2]
65
+ end
66
+ sum
44
67
  end
45
68
  end
46
69
  end
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Core
3
- VERSION = "1.8.4".freeze
3
+ VERSION = "1.8.6".freeze
4
4
  end
5
5
  end
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.8.4
4
+ version: 1.8.6
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-06-30 00:00:00.000000000 Z
11
+ date: 2023-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake