relaton-index 0.2.15 → 0.2.17

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: 5ce9d7205daf0975990050a9f2652f35d7fc9cd02a840f49cc268ee3114c0870
4
- data.tar.gz: b0a56e175a3ca0ed09dea40d2b0d6cb1d6b7400f5cb61d67a86185f00d9309d6
3
+ metadata.gz: 788bf4331c7923b1671faeb8b9655aab2caaa856dcf5f6fb6b9a95a930c9376c
4
+ data.tar.gz: 6d6e14df3e79b577e04e654579cdb4fb1c2dfdbe458763de1aabc28ca1d3af84
5
5
  SHA512:
6
- metadata.gz: 21cd6e533b27e00ee9b0604eb3a11112dba1c8f69db15996beede0b7ce763ae54ac30242e8a75118c6e525b4bde510bd7b68f347ccbdd180479d38b77f2c88c0
7
- data.tar.gz: 2788d0c92aa0e4fe6540eb4fb5ae4b30917abb304f91b09add060efbcd81977427503c5e7ddc15c17afd1db9735a1abecdfe0a0b760de3d7b89d9e3a41476c59
6
+ metadata.gz: f1b8d3dfe3686f754cf65a592daaa6ac475f6370aa0473da8eb77d48f9d53fc6694d0a71cad06a0fe3657829e2fd29d5928ecbaf5bd333547148b8066cb8bbfa
7
+ data.tar.gz: d6b868fa97d70774e5fcc865c390dabb64c8321be488c47127278cc33767f5725763e1da67848975a73c9ae539a432d8aa55d29e609c6d95a02e9aec0986bfd2
@@ -106,12 +106,7 @@ module Relaton
106
106
  yaml = Index.config.storage.read(file)
107
107
  return unless yaml
108
108
 
109
- index = YAML.safe_load yaml, permitted_classes: [Symbol]
110
- return deserialize_pubid(index) if check_format index
111
-
112
- warn_local_index_error "Wrong structure of the"
113
- rescue Psych::SyntaxError
114
- warn_local_index_error "YAML parsing error when reading"
109
+ load_index(yaml) || []
115
110
  end
116
111
 
117
112
  def deserialize_pubid(index)
@@ -134,6 +129,23 @@ module Relaton
134
129
  @progname ||= "relaton-#{@dir}"
135
130
  end
136
131
 
132
+ def load_index(yaml, save = false)
133
+ index = YAML.safe_load(yaml, permitted_classes: [Symbol])
134
+ save index if save
135
+ return deserialize_pubid(index) if check_format index
136
+
137
+ if save
138
+ warn_remote_index_error "Wrong structure of"
139
+ else
140
+ warn_local_index_error "Wrong structure of"
141
+ end
142
+ rescue Psych::SyntaxError
143
+ if save
144
+ warn_remote_index_error "YAML parsing error when reading"
145
+ else
146
+ warn_local_index_error "YAML parsing error when reading"
147
+ end
148
+ end
137
149
  #
138
150
  # Fetch index from external repository and save it to storage
139
151
  #
@@ -141,17 +153,13 @@ module Relaton
141
153
  #
142
154
  def fetch_and_save
143
155
  resp = StringIO.new(URI(url).read)
144
- zip = Zip::InputStream.new resp
145
- entry = zip.get_next_entry
146
- yaml = entry.get_input_stream.read
147
- index = YAML.safe_load(yaml, permitted_classes: [Symbol])
148
- save index
156
+ yaml = nil
157
+ Zip::File.open_buffer(resp) do |zip|
158
+ entry = zip.entries.first
159
+ yaml = entry.get_input_stream.read
160
+ end
149
161
  Util.info "Downloaded index from `#{url}`", progname
150
- return index if check_format index
151
-
152
- warn_remote_index_error "Wrong structure of"
153
- rescue Psych::SyntaxError
154
- warn_remote_index_error "YAML parsing error when reading"
162
+ load_index(yaml, save = true)
155
163
  end
156
164
 
157
165
  def warn_remote_index_error(reason)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Relaton
4
4
  module Index
5
- VERSION = "0.2.15"
5
+ VERSION = "0.2.17"
6
6
  end
7
7
  end
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_dependency "pubid-core", "~> 1.12.9"
33
+ spec.add_dependency "pubid-core", "~> 1.15.0"
34
34
  spec.add_dependency "relaton-logger", "~> 0.2.0"
35
35
  spec.add_dependency "rubyzip", "~> 2.3.0"
36
36
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-index
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.15
4
+ version: 0.2.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-08-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: pubid-core
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: 1.12.9
18
+ version: 1.15.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: 1.12.9
25
+ version: 1.15.0
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: relaton-logger
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +51,6 @@ dependencies:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
53
  version: 2.3.0
55
- description:
56
54
  email:
57
55
  - open.source@ribose.com
58
56
  executables: []
@@ -81,7 +79,6 @@ licenses:
81
79
  metadata:
82
80
  homepage_uri: https://github.com/relaton/relaton-index
83
81
  source_code_uri: https://github.com/relaton/relaton-index
84
- post_install_message:
85
82
  rdoc_options: []
86
83
  require_paths:
87
84
  - lib
@@ -96,8 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
93
  - !ruby/object:Gem::Version
97
94
  version: '0'
98
95
  requirements: []
99
- rubygems_version: 3.3.27
100
- signing_key:
96
+ rubygems_version: 3.6.9
101
97
  specification_version: 4
102
98
  summary: Relaton Index is a library for indexing Relaton files.
103
99
  test_files: []