solr_wrapper 4.0.2 → 4.1.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/.github/workflows/ci.yml +12 -4
- data/lib/solr_wrapper/checksum_validator.rb +13 -6
- data/lib/solr_wrapper/client.rb +3 -3
- data/lib/solr_wrapper/configuration.rb +35 -7
- data/lib/solr_wrapper/downloader.rb +21 -9
- data/lib/solr_wrapper/instance.rb +54 -17
- data/lib/solr_wrapper/runner.rb +1 -1
- data/lib/solr_wrapper/settings.rb +5 -1
- data/lib/solr_wrapper/version.rb +1 -1
- data/solr_wrapper.gemspec +4 -3
- data/spec/fixtures/basic_configs/solrconfig.xml +4 -4
- data/spec/lib/solr_wrapper/configuration_spec.rb +2 -1
- data/spec/lib/solr_wrapper/instance_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -3
- metadata +38 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 751cc40ca1d014568d2ec3a7b6f388a34ddf64667e22b5b7aec00155a99762d8
|
4
|
+
data.tar.gz: 3204adf72ccae744917b3fdb53597be80a08a26cab38702ab70cb1c4902e255a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c9bfd8aa35f953b95d4e2c0f570f40509cf27ec052e5444c182ebbd338bbe865ff44be9d015d9c7dfbbd6872f56baf70d89f126034bf6e2e3035caeadd6d532
|
7
|
+
data.tar.gz: f2aa2cb38e686787991488c8fa693a3693920151ac6497ecef497d88b191aacc682399bd4026457aeb59a9878434c7e843154af1f159bb1ff4af47664fca38bf
|
data/.github/workflows/ci.yml
CHANGED
@@ -12,11 +12,19 @@ jobs:
|
|
12
12
|
strategy:
|
13
13
|
matrix:
|
14
14
|
ruby:
|
15
|
-
- 2.
|
16
|
-
- 3.
|
17
|
-
- jruby-9.
|
15
|
+
- '3.2.5'
|
16
|
+
- '3.3.4'
|
17
|
+
- jruby-9.4.8.0
|
18
|
+
solr_version: ['']
|
19
|
+
include:
|
20
|
+
- ruby: '3.3.4'
|
21
|
+
solr_version: '8.11.4'
|
22
|
+
- ruby: '3.3.4'
|
23
|
+
solr_version: '9.6.1'
|
24
|
+
env:
|
25
|
+
SOLR_WRAPPER_SOLR_VERSION: ${{ matrix.solr_version }}
|
18
26
|
steps:
|
19
|
-
- uses: actions/checkout@
|
27
|
+
- uses: actions/checkout@v3
|
20
28
|
- name: Set up Ruby
|
21
29
|
uses: ruby/setup-ruby@v1
|
22
30
|
with:
|
@@ -13,13 +13,16 @@ module SolrWrapper
|
|
13
13
|
|
14
14
|
def validate?(file)
|
15
15
|
return true if config.validate == false
|
16
|
-
|
16
|
+
|
17
|
+
actual_sum(file) == expected_sum
|
17
18
|
end
|
18
19
|
|
19
20
|
def validate!(file)
|
20
|
-
|
21
|
-
|
22
|
-
|
21
|
+
return if validate?(file)
|
22
|
+
|
23
|
+
return if config.ignore_checksum || defined?(JRUBY_VERSION)
|
24
|
+
|
25
|
+
raise "Checksum mismatch: #{file} (expected(#{expected_sum}) != actual(#{actual_sum(file)})"
|
23
26
|
end
|
24
27
|
|
25
28
|
private
|
@@ -36,8 +39,12 @@ module SolrWrapper
|
|
36
39
|
File.join(config.download_dir, File.basename(checksumurl(suffix)))
|
37
40
|
end
|
38
41
|
|
39
|
-
def
|
40
|
-
|
42
|
+
def actual_sum(file)
|
43
|
+
Digest.const_get(algorithm.upcase).file(file).hexdigest
|
44
|
+
end
|
45
|
+
|
46
|
+
def expected_sum
|
47
|
+
config.checksum || read_file(algorithm)
|
41
48
|
end
|
42
49
|
|
43
50
|
def read_file(alg)
|
data/lib/solr_wrapper/client.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'faraday'
|
2
2
|
require 'json'
|
3
3
|
|
4
4
|
module SolrWrapper
|
@@ -18,7 +18,7 @@ module SolrWrapper
|
|
18
18
|
private
|
19
19
|
|
20
20
|
def collection?(name)
|
21
|
-
response =
|
21
|
+
response = Faraday.get("#{url}admin/collections?action=LIST&wt=json")
|
22
22
|
data = JSON.parse(response.body)
|
23
23
|
return if data['error'] && data['error']['msg'] == 'Solr instance is not running in SolrCloud mode.'
|
24
24
|
|
@@ -26,7 +26,7 @@ module SolrWrapper
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def core?(name)
|
29
|
-
response =
|
29
|
+
response = Faraday.get("#{url}admin/cores?action=STATUS&wt=json&core=#{name}")
|
30
30
|
!JSON.parse(response.body)['status'][name].empty?
|
31
31
|
end
|
32
32
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require '
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday/follow_redirects'
|
2
3
|
|
3
4
|
module SolrWrapper
|
4
5
|
class Configuration
|
@@ -9,6 +10,7 @@ module SolrWrapper
|
|
9
10
|
@verbose = options[:verbose]
|
10
11
|
|
11
12
|
@options = load_configs(Array(options[:config])).merge(options)
|
13
|
+
@options[:env] ||= ENV
|
12
14
|
end
|
13
15
|
|
14
16
|
def solr_xml
|
@@ -84,7 +86,12 @@ module SolrWrapper
|
|
84
86
|
|
85
87
|
def version
|
86
88
|
@version ||= begin
|
87
|
-
config_version =
|
89
|
+
config_version = if env_options[:version].nil? || env_options[:version].empty?
|
90
|
+
options.fetch(:version, SolrWrapper.default_instance_options[:version])
|
91
|
+
else
|
92
|
+
env_options[:version]
|
93
|
+
end
|
94
|
+
|
88
95
|
if config_version == 'latest'
|
89
96
|
fetch_latest_version
|
90
97
|
else
|
@@ -110,18 +117,23 @@ module SolrWrapper
|
|
110
117
|
options[:mirror_url] + mirror_artifact_path
|
111
118
|
else
|
112
119
|
begin
|
113
|
-
|
120
|
+
client = Faraday.new(closest_mirror_url) do |faraday|
|
121
|
+
faraday.use Faraday::FollowRedirects::Middleware
|
122
|
+
faraday.adapter Faraday.default_adapter
|
123
|
+
end
|
124
|
+
|
125
|
+
json = client.get.body
|
114
126
|
doc = JSON.parse(json)
|
115
127
|
url = doc['preferred'] + doc['path_info']
|
116
128
|
|
117
|
-
response =
|
129
|
+
response = Faraday.head(url)
|
118
130
|
|
119
|
-
if response.
|
131
|
+
if response.success?
|
120
132
|
url
|
121
133
|
else
|
122
134
|
archive_download_url
|
123
135
|
end
|
124
|
-
rescue Errno::ECONNRESET, SocketError,
|
136
|
+
rescue Errno::ECONNRESET, SocketError, Faraday::Error
|
125
137
|
archive_download_url
|
126
138
|
end
|
127
139
|
end
|
@@ -210,8 +222,24 @@ module SolrWrapper
|
|
210
222
|
end
|
211
223
|
|
212
224
|
def fetch_latest_version
|
213
|
-
|
225
|
+
url = options.fetch(:latest_version_url, 'https://solr.apache.org/downloads.html')
|
226
|
+
|
227
|
+
client = Faraday.new(url) do |faraday|
|
228
|
+
faraday.use Faraday::FollowRedirects::Middleware
|
229
|
+
faraday.adapter Faraday.default_adapter
|
230
|
+
end
|
231
|
+
|
232
|
+
response = client.get
|
214
233
|
response.body.to_s[/Solr \d+\.\d+\.\d+/][/\d+\.\d+\.\d+/]
|
215
234
|
end
|
235
|
+
|
236
|
+
def env_options
|
237
|
+
@env_options ||= begin
|
238
|
+
env = options.fetch(:env, {})
|
239
|
+
{
|
240
|
+
version: env['SOLR_WRAPPER_SOLR_VERSION']
|
241
|
+
}
|
242
|
+
end
|
243
|
+
end
|
216
244
|
end
|
217
245
|
end
|
@@ -1,23 +1,35 @@
|
|
1
1
|
require 'ruby-progressbar'
|
2
|
-
require '
|
2
|
+
require 'faraday'
|
3
|
+
require 'faraday/follow_redirects'
|
3
4
|
|
4
5
|
module SolrWrapper
|
5
6
|
class Downloader
|
6
7
|
def self.fetch_with_progressbar(url, output)
|
7
8
|
pbar = SafeProgressBar.new(title: File.basename(url), total: nil, format: '%t: |%B| %p%% (%e )')
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
client = Faraday.new(url) do |faraday|
|
11
|
+
faraday.use Faraday::FollowRedirects::Middleware
|
12
|
+
faraday.adapter Faraday.default_adapter
|
13
|
+
end
|
11
14
|
|
12
15
|
File.open(output, 'wb') do |f|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
16
|
+
client.get do |req|
|
17
|
+
req.options.on_data = Proc.new do |chunk, overall_received_bytes, env|
|
18
|
+
if env
|
19
|
+
pbar.total = env.response_headers['content-length'].to_i
|
20
|
+
pbar.progress = overall_received_bytes
|
21
|
+
else
|
22
|
+
pbar.increment
|
23
|
+
end
|
17
24
|
|
18
|
-
|
25
|
+
pbar.progress = overall_received_bytes
|
26
|
+
f.write(chunk)
|
27
|
+
end
|
28
|
+
end
|
19
29
|
end
|
20
|
-
|
30
|
+
|
31
|
+
true
|
32
|
+
rescue Faraday::Error => e
|
21
33
|
raise SolrWrapperError, "Unable to download solr from #{url}\n#{e}"
|
22
34
|
end
|
23
35
|
|
@@ -144,23 +144,52 @@ module SolrWrapper
|
|
144
144
|
# @option options [String] :name
|
145
145
|
# @option options [String] :dir
|
146
146
|
def create(options = {})
|
147
|
-
|
147
|
+
tmpdir = nil
|
148
148
|
|
149
|
-
|
150
|
-
|
151
|
-
create_options[:n] = options[:config_name] if options[:config_name]
|
152
|
-
create_options[:d] = options[:dir] if options[:dir]
|
149
|
+
begin
|
150
|
+
options[:name] ||= SecureRandom.hex
|
153
151
|
|
154
|
-
|
155
|
-
|
156
|
-
|
152
|
+
create_options = {}
|
153
|
+
if version >= '9.7'
|
154
|
+
create_options[:url] = config.base_url
|
155
|
+
else
|
156
|
+
create_options[:p] = port
|
157
|
+
end
|
158
|
+
create_options[:c] = options[:name] if options[:name]
|
159
|
+
create_options[:n] = options[:config_name] if options[:config_name]
|
160
|
+
|
161
|
+
if options[:dir]
|
162
|
+
# Solr 9.7 required that the dir argument contain a `conf` directory that
|
163
|
+
# contains the actual configuration files.
|
164
|
+
if version >= '9.7' && !File.exist?(File.join(options[:dir], 'conf'))
|
165
|
+
|
166
|
+
if options[:dir].match?(/conf\/$/)
|
167
|
+
create_options[:d] = File.expand_path(options[:dir], '..')
|
168
|
+
else
|
169
|
+
tmpdir = Dir.mktmpdir
|
170
|
+
|
171
|
+
FileUtils.mkdir("#{tmpdir}/conf")
|
172
|
+
FileUtils.cp_r("#{options[:dir]}/.", "#{tmpdir}/conf")
|
173
|
+
create_options[:d] = tmpdir
|
174
|
+
end
|
175
|
+
else
|
176
|
+
create_options[:d] = options[:dir]
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
Retriable.retriable do
|
181
|
+
raise "Not started yet" unless started?
|
182
|
+
end
|
157
183
|
|
158
|
-
|
159
|
-
|
184
|
+
# short-circuit if we're using persisted data with an existing core/collection
|
185
|
+
return if options[:persist] && create_options[:c] && client.exists?(create_options[:c])
|
160
186
|
|
161
|
-
|
187
|
+
exec("create", create_options)
|
162
188
|
|
163
|
-
|
189
|
+
options[:name]
|
190
|
+
ensure
|
191
|
+
FileUtils.remove_entry tmpdir if tmpdir
|
192
|
+
end
|
164
193
|
end
|
165
194
|
|
166
195
|
##
|
@@ -172,11 +201,11 @@ module SolrWrapper
|
|
172
201
|
options[:name] ||= SecureRandom.hex
|
173
202
|
options[:zkhost] ||= zkhost
|
174
203
|
|
175
|
-
upconfig_options = {
|
204
|
+
upconfig_options = { n: options[:name] }
|
176
205
|
upconfig_options[:d] = options[:dir] if options[:dir]
|
177
206
|
upconfig_options[:z] = options[:zkhost] if options[:zkhost]
|
178
207
|
|
179
|
-
exec 'zk', upconfig_options
|
208
|
+
exec ['zk', 'upconfig'], upconfig_options
|
180
209
|
|
181
210
|
options[:name]
|
182
211
|
end
|
@@ -190,11 +219,11 @@ module SolrWrapper
|
|
190
219
|
options[:name] ||= SecureRandom.hex
|
191
220
|
options[:zkhost] ||= zkhost
|
192
221
|
|
193
|
-
downconfig_options = {
|
222
|
+
downconfig_options = { n: options[:name] }
|
194
223
|
downconfig_options[:d] = options[:dir] if options[:dir]
|
195
224
|
downconfig_options[:z] = options[:zkhost] if options[:zkhost]
|
196
225
|
|
197
|
-
exec 'zk', downconfig_options
|
226
|
+
exec ['zk', 'downconfig'], downconfig_options
|
198
227
|
|
199
228
|
options[:name]
|
200
229
|
end
|
@@ -203,7 +232,15 @@ module SolrWrapper
|
|
203
232
|
# Create a new collection in solr
|
204
233
|
# @param [String] name collection name
|
205
234
|
def delete(name, _options = {})
|
206
|
-
|
235
|
+
delete_options = { c: name }
|
236
|
+
|
237
|
+
if version >= '9.7'
|
238
|
+
delete_options[:url] = config.base_url
|
239
|
+
else
|
240
|
+
delete_options[:p] = port
|
241
|
+
end
|
242
|
+
|
243
|
+
exec("delete", delete_options)
|
207
244
|
end
|
208
245
|
|
209
246
|
##
|
data/lib/solr_wrapper/runner.rb
CHANGED
@@ -42,10 +42,14 @@ module SolrWrapper
|
|
42
42
|
@zookeeper_port ||= "#{port.to_i + 1000}"
|
43
43
|
end
|
44
44
|
|
45
|
+
def base_url
|
46
|
+
"http://#{host}:#{port}/"
|
47
|
+
end
|
48
|
+
|
45
49
|
##
|
46
50
|
# Get a (likely) URL to the solr instance
|
47
51
|
def url
|
48
|
-
"
|
52
|
+
"#{base_url}solr/"
|
49
53
|
end
|
50
54
|
|
51
55
|
def instance_dir
|
data/lib/solr_wrapper/version.rb
CHANGED
data/solr_wrapper.gemspec
CHANGED
@@ -18,16 +18,17 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "
|
21
|
+
spec.add_dependency "faraday", "~> 2.5"
|
22
|
+
spec.add_dependency "faraday-follow_redirects"
|
22
23
|
spec.add_dependency "minitar"
|
23
24
|
spec.add_dependency "ruby-progressbar"
|
24
25
|
spec.add_dependency "retriable"
|
26
|
+
spec.add_dependency "ostruct"
|
25
27
|
|
26
28
|
spec.add_development_dependency "bundler", ">= 1.7", "< 3"
|
27
|
-
spec.add_development_dependency "rake", "
|
29
|
+
spec.add_development_dependency "rake", ">= 12.2", "< 14"
|
28
30
|
|
29
31
|
spec.add_development_dependency "rspec"
|
30
32
|
spec.add_development_dependency "simple_solr_client", "= 0.2.0" # 0.2.1 removed support for schema retrieval
|
31
|
-
spec.add_development_dependency "coveralls"
|
32
33
|
spec.add_development_dependency "webmock"
|
33
34
|
end
|
@@ -240,7 +240,7 @@
|
|
240
240
|
autowarmCount - the number of entries to prepopulate from
|
241
241
|
and old cache.
|
242
242
|
-->
|
243
|
-
<filterCache class="solr.
|
243
|
+
<filterCache class="solr.CaffeineCache"
|
244
244
|
size="512"
|
245
245
|
initialSize="512"
|
246
246
|
autowarmCount="0"/>
|
@@ -250,7 +250,7 @@
|
|
250
250
|
Caches results of searches - ordered lists of document ids
|
251
251
|
(DocList) based on a query, a sort, and the range of documents requested.
|
252
252
|
-->
|
253
|
-
<queryResultCache class="solr.
|
253
|
+
<queryResultCache class="solr.CaffeineCache"
|
254
254
|
size="512"
|
255
255
|
initialSize="512"
|
256
256
|
autowarmCount="0"/>
|
@@ -261,14 +261,14 @@
|
|
261
261
|
document). Since Lucene internal document ids are transient,
|
262
262
|
this cache will not be autowarmed.
|
263
263
|
-->
|
264
|
-
<documentCache class="solr.
|
264
|
+
<documentCache class="solr.CaffeineCache"
|
265
265
|
size="512"
|
266
266
|
initialSize="512"
|
267
267
|
autowarmCount="0"/>
|
268
268
|
|
269
269
|
<!-- custom cache currently used by block join -->
|
270
270
|
<cache name="perSegFilter"
|
271
|
-
class="solr.
|
271
|
+
class="solr.CaffeineCache"
|
272
272
|
size="10"
|
273
273
|
initialSize="0"
|
274
274
|
autowarmCount="10"
|
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe SolrWrapper::Configuration do
|
4
|
-
let(:config) { described_class.new options }
|
4
|
+
let(:config) { described_class.new default_options.merge(options) }
|
5
|
+
let(:default_options) { { env: {} } }
|
5
6
|
|
6
7
|
describe "#port" do
|
7
8
|
subject { config.port }
|
@@ -135,7 +135,7 @@ describe SolrWrapper::Instance do
|
|
135
135
|
let(:cmd) { 'healthcheck' }
|
136
136
|
let(:options) { { z: 'localhost:5098' } }
|
137
137
|
it 'raises an error with the output from the shell command' do
|
138
|
-
expect { subject }.to raise_error(RuntimeError, /Failed to execute solr healthcheck: collection parameter is required
|
138
|
+
expect { subject }.to raise_error(RuntimeError, Regexp.union(/Failed to execute solr healthcheck: collection parameter is required!/, /Failed to parse command-line arguments due to: Missing required option: c/))
|
139
139
|
end
|
140
140
|
end
|
141
141
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,17 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solr_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.5'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday-follow_redirects
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - ">="
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: ostruct
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: bundler
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,22 +118,22 @@ dependencies:
|
|
90
118
|
name: rake
|
91
119
|
requirement: !ruby/object:Gem::Requirement
|
92
120
|
requirements:
|
93
|
-
- - "
|
121
|
+
- - ">="
|
94
122
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
123
|
+
version: '12.2'
|
96
124
|
- - "<"
|
97
125
|
- !ruby/object:Gem::Version
|
98
|
-
version: '
|
126
|
+
version: '14'
|
99
127
|
type: :development
|
100
128
|
prerelease: false
|
101
129
|
version_requirements: !ruby/object:Gem::Requirement
|
102
130
|
requirements:
|
103
|
-
- - "
|
131
|
+
- - ">="
|
104
132
|
- !ruby/object:Gem::Version
|
105
|
-
version: '
|
133
|
+
version: '12.2'
|
106
134
|
- - "<"
|
107
135
|
- !ruby/object:Gem::Version
|
108
|
-
version: '
|
136
|
+
version: '14'
|
109
137
|
- !ruby/object:Gem::Dependency
|
110
138
|
name: rspec
|
111
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,20 +162,6 @@ dependencies:
|
|
134
162
|
- - '='
|
135
163
|
- !ruby/object:Gem::Version
|
136
164
|
version: 0.2.0
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: coveralls
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
140
|
-
requirements:
|
141
|
-
- - ">="
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '0'
|
144
|
-
type: :development
|
145
|
-
prerelease: false
|
146
|
-
version_requirements: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - ">="
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '0'
|
151
165
|
- !ruby/object:Gem::Dependency
|
152
166
|
name: webmock
|
153
167
|
requirement: !ruby/object:Gem::Requirement
|
@@ -230,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
230
244
|
- !ruby/object:Gem::Version
|
231
245
|
version: '0'
|
232
246
|
requirements: []
|
233
|
-
rubygems_version: 3.
|
247
|
+
rubygems_version: 3.5.9
|
234
248
|
signing_key:
|
235
249
|
specification_version: 4
|
236
250
|
summary: Solr service wrapper
|