solr_wrapper 2.2.0 → 3.0.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: 765b18a31b677209a0661be1447d607905a643b6f92f35b8ca1676d1a818ef68
4
- data.tar.gz: d5aad9d544ef2cb4195b086c5a0f7c6f8f2c3065f24e664e215c92ce05707a74
3
+ metadata.gz: 375a30420891aefb1b28895bdea108a53af69c668514c3157cd3fb150b7f616a
4
+ data.tar.gz: 7980d452b1f499809904c844dfcc1000e0e15b30d80cb223af08c329052a57ef
5
5
  SHA512:
6
- metadata.gz: c031863efbf8794077b2126db2120ab8b284855d0e0cc9dce3656d7d18b42ef9ac016deca68a899c000cbfecef38b3ff8b3e2c37e1028933772703f9c6cfe43d
7
- data.tar.gz: c02222dcdc846d125d12cc929348e2fa25737c62ba9e92113c9bfc65755de7945431effd779ee4c659ca726a0651ef480057be548fec8c47c3f0c8b36ddd419d
6
+ metadata.gz: d7ebfeaa76e02a58df27d460a2dc8375c3e66d4d4e4ab92e9ce9cb11954a4926bf349187d2434d1a324b6f95a0f8f4407b17645dc3fbadbbca10e34b83fd1bde
7
+ data.tar.gz: a8cbb45b871e3dc18b842f24a97a9f0335f1a31f52dcfedbeb5bb9303d97416f61697a069face9a85d2646413a3fde560a25517feb185904312cff6456e7d9f5
@@ -0,0 +1,29 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby:
15
+ - 2.7
16
+ - 3.0
17
+ - jruby-9.2.14.0
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby }}
24
+ - name: Install dependencies
25
+ run: bundle install
26
+ - name: Run tests
27
+ run: bundle exec rake
28
+ env:
29
+ ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
@@ -1,4 +1,4 @@
1
- require 'faraday'
1
+ require 'http'
2
2
  require 'json'
3
3
 
4
4
  module SolrWrapper
@@ -18,19 +18,16 @@ module SolrWrapper
18
18
  private
19
19
 
20
20
  def collection?(name)
21
- response = conn.get('admin/collections?action=LIST&wt=json')
21
+ response = HTTP.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
25
  data['collections'].include? name
25
26
  end
26
27
 
27
28
  def core?(name)
28
- response = conn.get('admin/cores?action=STATUS&wt=json&core=' + name)
29
+ response = HTTP.get("#{url}admin/cores?action=STATUS&wt=json&core=#{name}")
29
30
  !JSON.parse(response.body)['status'][name].empty?
30
31
  end
31
-
32
- def conn
33
- @conn ||= Faraday.new(url: url)
34
- end
35
32
  end
36
33
  end
@@ -1,4 +1,4 @@
1
- require 'faraday'
1
+ require 'http'
2
2
 
3
3
  module SolrWrapper
4
4
  class Configuration
@@ -102,19 +102,18 @@ module SolrWrapper
102
102
  options[:mirror_url] + "lucene/solr/#{version}/solr-#{version}.zip"
103
103
  else
104
104
  begin
105
- json = open(closest_mirror_url).read
105
+ json = HTTP.get(closest_mirror_url).body
106
106
  doc = JSON.parse(json)
107
107
  url = doc['preferred'] + doc['path_info']
108
108
 
109
- response = Faraday.head(url)
109
+ response = HTTP.head(url)
110
110
 
111
- if response.success?
111
+ if response.status.success?
112
112
  url
113
113
  else
114
114
  archive_download_url
115
115
  end
116
-
117
- rescue Errno::ECONNRESET, SocketError, Faraday::Error
116
+ rescue Errno::ECONNRESET, SocketError, HTTP::Error
118
117
  archive_download_url
119
118
  end
120
119
  end
@@ -187,8 +186,8 @@ module SolrWrapper
187
186
  end
188
187
 
189
188
  def fetch_latest_version
190
- response = Faraday.get(options.fetch(:latest_version_url, 'https://lucene.apache.org/solr/downloads.html'))
191
- response.body[/Solr \d+\.\d+\.\d+/][/\d+\.\d+\.\d+/]
189
+ response = HTTP.get(options.fetch(:latest_version_url, 'https://lucene.apache.org/solr/downloads.html'))
190
+ response.body.to_s[/Solr \d+\.\d+\.\d+/][/\d+\.\d+\.\d+/]
192
191
  end
193
192
  end
194
193
  end
@@ -1,24 +1,34 @@
1
1
  require 'ruby-progressbar'
2
+ require 'http'
2
3
 
3
4
  module SolrWrapper
4
5
  class Downloader
5
6
  def self.fetch_with_progressbar(url, output)
6
7
  pbar = SafeProgressBar.new(title: File.basename(url), total: nil, format: '%t: |%B| %p%% (%e )')
7
- open(url, content_length_proc: ->(bytes) { pbar.total = bytes }, progress_proc: ->(bytes) { pbar.progress = bytes }) do |io|
8
- IO.copy_stream(io, output)
8
+
9
+ response = HTTP.follow.get(url)
10
+ pbar.total = response.headers['content-length'].to_i
11
+
12
+ File.open(output, 'w') do |f|
13
+ response.body.each do |chunk|
14
+ f.write(chunk)
15
+ pbar.progress += chunk.length
16
+ end
17
+
18
+ nil
9
19
  end
10
- rescue OpenURI::HTTPError => e
11
- raise SolrWrapperError, "Unable to download solr from #{url}\n#{e.message}: #{e.io.read}"
20
+ rescue HTTP::Error => e
21
+ raise SolrWrapperError, "Unable to download solr from #{url}\n#{e}"
12
22
  end
13
23
 
14
24
  class SafeProgressBar < ProgressBar::Base
15
25
  def progress=(new_progress)
16
- self.total = new_progress if total <= new_progress
26
+ self.total = new_progress if total.to_i <= new_progress
17
27
  super
18
28
  end
19
29
 
20
30
  def total=(new_total)
21
- super if new_total && new_total > 0
31
+ super if new_total && new_total >= 0
22
32
  end
23
33
  end
24
34
  end
@@ -1,5 +1,4 @@
1
1
  require 'delegate'
2
- require 'faraday'
3
2
 
4
3
  module SolrWrapper
5
4
  # Configuraton that comes from static and dynamic sources.
@@ -1,3 +1,3 @@
1
1
  module SolrWrapper
2
- VERSION = '2.2.0'
2
+ VERSION = '3.0.0'
3
3
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = SolrWrapper::VERSION
9
9
  spec.authors = ["Chris Beer"]
10
10
  spec.email = ["chris@cbeer.info"]
11
- spec.summary = %q{Solr 5 service wrapper}
11
+ spec.summary = %q{Solr service wrapper}
12
12
  spec.homepage = "https://github.com/cbeer/solr_wrapper"
13
13
  spec.license = "MIT"
14
14
 
@@ -18,7 +18,7 @@ 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 "faraday"
21
+ spec.add_dependency "http"
22
22
  spec.add_dependency "rubyzip"
23
23
  spec.add_dependency "ruby-progressbar"
24
24
  spec.add_dependency "retriable"
@@ -1,6 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SolrWrapper::Instance do
4
+ # WebMock messes with HTTP.rbs ability to stream responses
5
+ before(:all) do
6
+ WebMock.disable!
7
+ end
8
+
9
+ after(:all) do
10
+ WebMock.enable!
11
+ end
12
+
4
13
  let(:options) { {} }
5
14
  let(:solr_instance) { SolrWrapper::Instance.new(options) }
6
15
  subject { solr_instance }
@@ -1,6 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SolrWrapper do
4
+ # WebMock messes with HTTP.rbs ability to stream responses
5
+ before(:all) do
6
+ WebMock.disable!
7
+ end
8
+
9
+ after(:all) do
10
+ WebMock.enable!
11
+ end
12
+
4
13
  describe ".wrap" do
5
14
  it "should launch solr" do
6
15
  SolrWrapper.wrap do |solr|
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solr_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-18 00:00:00.000000000 Z
11
+ date: 2021-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
14
+ name: http
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -162,7 +162,7 @@ dependencies:
162
162
  - - ">="
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
- description:
165
+ description:
166
166
  email:
167
167
  - chris@cbeer.info
168
168
  executables:
@@ -170,17 +170,16 @@ executables:
170
170
  extensions: []
171
171
  extra_rdoc_files: []
172
172
  files:
173
+ - ".github/workflows/ci.yml"
173
174
  - ".gitignore"
174
175
  - ".hound.yml"
175
176
  - ".rspec"
176
177
  - ".rubocop.yml"
177
178
  - ".rubocop_todo.yml"
178
- - ".travis.yml"
179
179
  - Gemfile
180
180
  - LICENSE
181
181
  - README.md
182
182
  - Rakefile
183
- - coveralls.yml
184
183
  - exe/solr_wrapper
185
184
  - lib/solr_wrapper.rb
186
185
  - lib/solr_wrapper/checksum_validator.rb
@@ -215,7 +214,7 @@ homepage: https://github.com/cbeer/solr_wrapper
215
214
  licenses:
216
215
  - MIT
217
216
  metadata: {}
218
- post_install_message:
217
+ post_install_message:
219
218
  rdoc_options: []
220
219
  require_paths:
221
220
  - lib
@@ -230,10 +229,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
229
  - !ruby/object:Gem::Version
231
230
  version: '0'
232
231
  requirements: []
233
- rubygems_version: 3.0.3
234
- signing_key:
232
+ rubygems_version: 3.2.3
233
+ signing_key:
235
234
  specification_version: 4
236
- summary: Solr 5 service wrapper
235
+ summary: Solr service wrapper
237
236
  test_files:
238
237
  - spec/fixtures/another_sample_config.yml
239
238
  - spec/fixtures/basic_configs/_rest_managed.json
@@ -1,13 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.6.3
5
- - 2.5.3
6
- - jruby-9.2.7.0
7
-
8
- jdk:
9
- - openjdk8
10
-
11
- env:
12
- global:
13
- JRUBY_OPTS=-J-Xmx2g
@@ -1 +0,0 @@
1
- service_name: travis-ci