pubid-iso 0.5.3 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc8335f48f32190dc97e33a697eb6c4e4c167dde7439ed9ea7c86f993b63851e
4
- data.tar.gz: 761131f2e57b70c3c7cc1544cd916c262f4fc747910e36f015280d17367e14d6
3
+ metadata.gz: 11124938cd55ceae313c720ac11b3c19c475e1398bb7e0eed93ac07ebbbe9eb4
4
+ data.tar.gz: 72de1b3ce2af85a21b888e2180410d5efbe57f6ea297ff7b412a9758e024d1e5
5
5
  SHA512:
6
- metadata.gz: fb15a0823609ccf7b45858407d2bf9ebb3bf64eb47cbac1d0c3295b7bd6db5d702ba46ece8908aa4ed326eb219f0d3d35dc4eb33158e5fc48a68a35e7689e53e
7
- data.tar.gz: cf0520e2b7ce394218c1a3cfd898d7b562eec3c55f4ddbf0ccdfa3ff933aa32ce53c69b6835e9254e59a9966c988b933bddc047a27a52de8863556f362bfb5c2
6
+ metadata.gz: dd4d5c372306186736e8c44c446e445758c8b7d871d73454096c739ed1e5e7fcc7890b8ea0189c44f5418150d54f6802d325687ab77dcf71984277ec244f303a
7
+ data.tar.gz: f93770f6fb62a8401e99a59d1e47c99eb6f97c5be34385acb9f01187bb8eab504ccff0dc8ae50162037ef3f5080a0e0f2a8add11a2f789ef67cf153128c339eb
@@ -91,7 +91,6 @@ module Pubid::Iso
91
91
 
92
92
  rule(:year_digits) { (str("19") | str("20")) >> match('\d').repeat(2, 2) >> digits.absent? }
93
93
 
94
-
95
94
  rule(:part_matcher) do
96
95
  year_digits.absent? >>
97
96
  supplements.absent? >>
@@ -64,7 +64,7 @@ module Pubid::Iso::Renderer
64
64
  end
65
65
  [publisher, copublishers].join("/")
66
66
  when Array
67
- ([publisher] + copublishers.map(&:to_s).sort).map do |pub|
67
+ ([publisher] + copublishers.map(&:to_s)).map do |pub|
68
68
  if opts[:language]
69
69
  (TRANSLATION[opts[:language]][:publisher][pub] || pub).gsub('-', '/')
70
70
  else
@@ -156,8 +156,6 @@ module Pubid::Iso::Renderer
156
156
  end
157
157
 
158
158
  def render_part(part, opts, _params)
159
- return "-#{part.reverse.join('-')}" if part.is_a?(Array)
160
-
161
159
  "-#{part}"
162
160
  end
163
161
 
@@ -2,7 +2,7 @@ require_relative "identifier/base"
2
2
  require_relative "renderer/base"
3
3
 
4
4
  module Pubid::Iso
5
- class Transformer < Parslet::Transform
5
+ class Transformer < Pubid::Core::Transformer
6
6
  rule(edition: "Ed") do
7
7
  { edition: "1" }
8
8
  end
@@ -96,6 +96,10 @@ module Pubid::Iso
96
96
  { publisher: russian_publisher&.to_s || publisher }
97
97
  end
98
98
 
99
+ rule(part: sequence(:part)) do
100
+ { part: part.map(&:to_s).join("-") }
101
+ end
102
+
99
103
  rule(joint_document: subtree(:joint_document)) do |context|
100
104
  context[:joint_document] =
101
105
  Identifier.create(**context[:joint_document])
@@ -108,36 +112,6 @@ module Pubid::Iso
108
112
  context.select { |k, v| k != :dir_joint_document }
109
113
  end
110
114
 
111
-
112
- rule(roman_numerals: simple(:roman_numerals)) do |context|
113
- roman_to_int(context[:roman_numerals])
114
- # case roman_numerals
115
- # when "III"
116
- # 3
117
- # else
118
- # nil
119
- # end
120
- end
121
-
122
- ROMAN_TO_INT = {
123
- "I" => 1,
124
- "V" => 5,
125
- "X" => 10,
126
- "L" => 50,
127
- "C" => 100,
128
- "D" => 500,
129
- "M" => 1000,
130
- }
131
-
132
- def self.roman_to_int(roman)
133
- sum = ROMAN_TO_INT[roman.to_s[0]]
134
- roman.to_s.chars.each_cons(2) do |c1, c2|
135
- sum += ROMAN_TO_INT[c2]
136
- sum -= ROMAN_TO_INT[c1] * 2 if ROMAN_TO_INT[c1] < ROMAN_TO_INT[c2]
137
- end
138
- sum
139
- end
140
-
141
115
  def self.convert_stage(code)
142
116
  russian_code = Pubid::Iso::Renderer::Base::TRANSLATION[:russian][:stage].key(code.to_s)
143
117
  return { stage: russian_code } if russian_code
@@ -1,5 +1,5 @@
1
1
  module Pubid
2
2
  module Iso
3
- VERSION = "0.5.3".freeze
3
+ VERSION = "0.6.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pubid-iso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.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: 2023-05-14 00:00:00.000000000 Z
11
+ date: 2023-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,48 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
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
41
  - !ruby/object:Gem::Dependency
84
42
  name: parslet
85
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +58,14 @@ dependencies:
100
58
  requirements:
101
59
  - - "~>"
102
60
  - !ruby/object:Gem::Version
103
- version: 1.8.0
61
+ version: 1.8.6
104
62
  type: :runtime
105
63
  prerelease: false
106
64
  version_requirements: !ruby/object:Gem::Requirement
107
65
  requirements:
108
66
  - - "~>"
109
67
  - !ruby/object:Gem::Version
110
- version: 1.8.0
68
+ version: 1.8.6
111
69
  description: Library to generate, parse and manipulate ISO PubID.
112
70
  email:
113
71
  - open.source@ribose.com