blacklight_advanced_search 8.0.0 → 8.1.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: 863f87d073f3a7e0d89385ab55f1cb18ad064cd13ce8c1971b9ee57e3669aa74
4
- data.tar.gz: 6f1d559935ed0467adb44f37f568265eb6571e81db3ba9319e8b0dee8c259910
3
+ metadata.gz: 1373f3849b2564bb57b5a4596dc798f26fa47566dcea685a9a24f202f9ef5e63
4
+ data.tar.gz: 494eb7f9dd89f644a3228423a555153a68d734e71f990570a9f4be2169babfac
5
5
  SHA512:
6
- metadata.gz: 59d72605083343d869eeeab7eb4c275185bd2f70c28793e0ec55fc413266577588ae062ced95d68ed73eda219e7b763b9a796255602dd8925fac7a4535d6e0dd
7
- data.tar.gz: '09d0649bf731822a18067bb6199cea04625efb7bad7c6c0fe4f0f10c7c8c2359af9d59a57ea1fc8adac6ca1e2fd3d95b3c8d093de740c35e74bee0b7b17e8e22'
6
+ metadata.gz: ac4768563ed3ff1370260a14523ff977db90d663ff054258589e48c087dfd18e9149b00402521aab4506e083a9efdea48e0e4800d421c5228451893781d5bfe7
7
+ data.tar.gz: 596aed99657baa1e2b840bda03fd32fbdeb80a55c4dfe2b00434b52660d2c0c9f5b832fbc4ba4084350178b9c2feaead208a347ca186e66b1633b9ab9bd90fda
@@ -29,7 +29,7 @@ jobs:
29
29
  strategy:
30
30
  matrix:
31
31
  ruby: ['3.2', '3.3', '3.4']
32
- rails_version: ['~> 7.2', '~> 8.1']
32
+ rails_version: ['~> 7.2.4', '~> 8.1']
33
33
  blacklight_version: ['~> 8.0']
34
34
  experimental: [false]
35
35
  include:
data/Rakefile CHANGED
@@ -7,6 +7,52 @@ require 'rdoc/task'
7
7
  require 'rubocop/rake_task'
8
8
  require 'rspec/core/rake_task'
9
9
  require 'engine_cart/rake_task'
10
+ require 'net/http'
11
+
12
+ # Run Solr with docker compose when it's available, otherwise with solr_wrapper.
13
+ def with_solr(&block)
14
+ if system('docker compose version', out: File::NULL, err: File::NULL)
15
+ with_docker_solr(&block)
16
+ else
17
+ with_solr_wrapper(&block)
18
+ end
19
+ end
20
+
21
+ def with_docker_solr
22
+ puts 'Starting Solr'
23
+ system('docker compose up -d solr', exception: true)
24
+ wait_for_solr
25
+ yield
26
+ ensure
27
+ puts 'Stopping Solr'
28
+ system('docker compose stop solr')
29
+ end
30
+
31
+ def with_solr_wrapper(&block)
32
+ require 'solr_wrapper'
33
+
34
+ SolrWrapper.wrap(port: '8983') do |solr|
35
+ solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path(__dir__), "solr", "conf"), &block)
36
+ end
37
+ end
38
+
39
+ # `docker compose up -d` returns before Solr has created the core.
40
+ def wait_for_solr(timeout: 60)
41
+ ping = URI("http://127.0.0.1:#{ENV.fetch('SOLR_PORT', 8983)}/solr/blacklight-core/admin/ping")
42
+ deadline = Process.clock_gettime(Process::CLOCK_MONOTONIC) + timeout
43
+
44
+ until solr_ping?(ping)
45
+ raise "Solr did not respond at #{ping} within #{timeout} seconds" if Process.clock_gettime(Process::CLOCK_MONOTONIC) > deadline
46
+
47
+ sleep 1
48
+ end
49
+ end
50
+
51
+ def solr_ping?(uri)
52
+ Net::HTTP.get_response(uri).is_a?(Net::HTTPSuccess)
53
+ rescue StandardError
54
+ false
55
+ end
10
56
 
11
57
  task :default => :ci
12
58
 
@@ -24,13 +70,9 @@ end
24
70
 
25
71
  desc "Execute Continuous Integration build"
26
72
  task :ci => ['rubocop', 'engine_cart:generate'] do
27
- require 'solr_wrapper'
28
-
29
- SolrWrapper.wrap(port: '8983') do |solr|
30
- solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path(__dir__), "solr", "conf")) do
31
- Rake::Task['fixtures'].invoke
32
- Rake::Task['spec'].invoke
33
- end
73
+ with_solr do
74
+ Rake::Task['fixtures'].invoke
75
+ Rake::Task['spec'].invoke
34
76
  end
35
77
  end
36
78
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 8.0.0
1
+ 8.1.0
data/compose.yaml ADDED
@@ -0,0 +1,16 @@
1
+ services:
2
+ solr:
3
+ image: "solr:${SOLR_VERSION:-9.10.1}"
4
+ volumes:
5
+ - $PWD/solr/conf:/opt/solr/conf
6
+ ports:
7
+ - "${SOLR_PORT:-8983}:8983"
8
+ environment:
9
+ - SOLR_OPTS=-Dsolr.config.lib.enabled=true
10
+ entrypoint:
11
+ - docker-entrypoint.sh
12
+ - solr-precreate
13
+ - blacklight-core
14
+ - /opt/solr/conf
15
+ - "-Xms256m"
16
+ - "-Xmx512m"
@@ -49,9 +49,10 @@ module BlacklightAdvancedSearch
49
49
  # parse and send it straight to solr same as if advanced_parse_q
50
50
  # were not being used.
51
51
  def add_advanced_parse_q_to_solr(solr_parameters)
52
- return if blacklight_params[:q].blank? || !blacklight_params[:q].respond_to?(:to_str)
52
+ params = search_state.params
53
+ return if params[:q].blank? || !params[:q].respond_to?(:to_str)
53
54
 
54
- field_def = blacklight_config.search_fields[blacklight_params[:search_field]] ||
55
+ field_def = blacklight_config.search_fields[params[:search_field]] ||
55
56
  blacklight_config.default_search_field
56
57
 
57
58
  # If the individual field has advanced_parse_q suppressed, punt
@@ -63,7 +64,7 @@ module BlacklightAdvancedSearch
63
64
  # See if we can parse it, if we can't, we're going to give up
64
65
  # and just allow basic search, perhaps with a warning.
65
66
  begin
66
- adv_search_params = ParsingNesting::Tree.parse(blacklight_params[:q], blacklight_config.advanced_search[:query_parser]).to_single_query_params(solr_local_params)
67
+ adv_search_params = ParsingNesting::Tree.parse(params[:q], blacklight_config.advanced_search[:query_parser]).to_single_query_params(solr_local_params)
67
68
 
68
69
  BlacklightAdvancedSearch.deep_merge!(solr_parameters, solr_direct_params)
69
70
  BlacklightAdvancedSearch.deep_merge!(solr_parameters, adv_search_params)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight_advanced_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -188,6 +188,7 @@ files:
188
188
  - Rakefile
189
189
  - VERSION
190
190
  - blacklight_advanced_search.gemspec
191
+ - compose.yaml
191
192
  - config/routes.rb
192
193
  - lib/blacklight_advanced_search.rb
193
194
  - lib/blacklight_advanced_search/advanced_query_parser.rb
@@ -247,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
248
  - !ruby/object:Gem::Version
248
249
  version: '0'
249
250
  requirements: []
250
- rubygems_version: 3.6.9
251
+ rubygems_version: 4.0.22
251
252
  specification_version: 4
252
253
  summary: Blacklight Advanced Search plugin
253
254
  test_files: