blacklight_advanced_search 8.0.0.alpha2 → 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: 59198eb4fdf853ede08ae5f3511341a98c81c83080daf40e757e9232af860dea
4
- data.tar.gz: 225901fe9571fe867a36c198e4cf0366b62ab13b81bcf57f8a0fb9e5e7734fd6
3
+ metadata.gz: 1373f3849b2564bb57b5a4596dc798f26fa47566dcea685a9a24f202f9ef5e63
4
+ data.tar.gz: 494eb7f9dd89f644a3228423a555153a68d734e71f990570a9f4be2169babfac
5
5
  SHA512:
6
- metadata.gz: 1bbfbd5f818a220bddd0acc60fceee62ca50f6c538dff9274a7defe410e2adfe4215269df4ad4df1c04e496214d3effd7a7d9139d98206bfad6bb6e8832584fa
7
- data.tar.gz: 180e2984ff0c3afcc2ec09b2ec799e5b279f28518ea4cc028a5eb63503ac95ac55bd4613996a7c7221c1a9b4d4f9e75d204f93741161acbdfb2ffe616da5e997
6
+ metadata.gz: ac4768563ed3ff1370260a14523ff977db90d663ff054258589e48c087dfd18e9149b00402521aab4506e083a9efdea48e0e4800d421c5228451893781d5bfe7
7
+ data.tar.gz: 596aed99657baa1e2b840bda03fd32fbdeb80a55c4dfe2b00434b52660d2c0c9f5b832fbc4ba4084350178b9c2feaead208a347ca186e66b1633b9ab9bd90fda
@@ -1,10 +1,3 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
1
  name: CI
9
2
 
10
3
  on:
@@ -13,113 +6,52 @@ on:
13
6
  - main
14
7
  - 'release-*'
15
8
  pull_request:
9
+ branches:
10
+ - main
11
+ - 'release-*'
16
12
 
17
13
  jobs:
18
14
  lint:
19
15
  runs-on: ubuntu-latest
20
16
  steps:
21
- - uses: actions/checkout@v2
17
+ - uses: actions/checkout@v6
22
18
  - name: Set up Ruby
23
19
  uses: ruby/setup-ruby@v1
24
20
  with:
25
- ruby-version: 2.7
21
+ ruby-version: 3.1
26
22
  - name: Install dependencies
27
23
  run: bundle install
28
24
  - name: Run linter
29
25
  run: bundle exec rake rubocop
30
26
  test:
31
27
  runs-on: ubuntu-latest
28
+ continue-on-error: ${{ matrix.experimental }}
32
29
  strategy:
33
30
  matrix:
34
- ruby: [2.7, '3.0', 3.1]
35
- steps:
36
- - uses: actions/checkout@v2
37
- - name: Set up Ruby
38
- uses: ruby/setup-ruby@v1
39
- with:
40
- ruby-version: ${{ matrix.ruby }}
41
- - name: Install dependencies
42
- run: bundle install
43
- - name: Run tests
44
- run: bundle exec rake ci
45
- env:
46
- ENGINE_CART_RAILS_OPTIONS: '-a propshaft --skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
47
- test_bootstrap5:
48
- runs-on: ubuntu-latest
49
- strategy:
50
- matrix:
51
- ruby: ['3.0']
31
+ ruby: ['3.2', '3.3', '3.4']
32
+ rails_version: ['~> 7.2.4', '~> 8.1']
33
+ blacklight_version: ['~> 8.0']
34
+ experimental: [false]
35
+ include:
36
+ - ruby: '3.4'
37
+ rails_version: '~> 8.1'
38
+ blacklight_version: '~> 9.0'
39
+ experimental: false
40
+ - ruby: '3.4'
41
+ rails_version: '~> 8.1'
42
+ blacklight_version: 'github'
43
+ experimental: true
44
+ env:
45
+ RAILS_VERSION: ${{ matrix.rails_version }}
46
+ BLACKLIGHT_VERSION: ${{ matrix.blacklight_version }}
47
+ ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test --skip-kamal --css=bootstrap --js=esbuild'
52
48
  steps:
53
- - uses: actions/checkout@v2
54
- - name: Set up Ruby
49
+ - uses: actions/checkout@v6
50
+ - name: Set up Ruby ${{ matrix.ruby }}
55
51
  uses: ruby/setup-ruby@v1
56
52
  with:
57
53
  ruby-version: ${{ matrix.ruby }}
58
- - name: Install dependencies
59
- run: bundle install
60
- - name: Run tests
61
- run: bundle exec rake ci
62
- env:
63
- BOOTSTRAP_VERSION: '~> 5.0'
64
- ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
65
- test_rails6_0:
66
- runs-on: ubuntu-latest
67
- strategy:
68
- matrix:
69
- ruby: [2.6]
70
- steps:
71
- - uses: actions/checkout@v2
72
- - name: Set up Ruby
73
- uses: ruby/setup-ruby@v1
74
- with:
75
- ruby-version: ${{ matrix.ruby }}
76
- - name: Install dependencies
77
- run: bundle install
78
- env:
79
- RAILS_VERSION: 6.0.3.7
80
- - name: Run tests
81
- run: bundle exec rake ci
82
- env:
83
- RAILS_VERSION: 6.0.3.7
84
- ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
85
- test_rails5_2:
86
- runs-on: ubuntu-latest
87
- strategy:
88
- matrix:
89
- ruby: [2.7]
90
- steps:
91
- - uses: actions/checkout@v2
92
- - name: Set up Ruby
93
- uses: ruby/setup-ruby@v1
94
- with:
95
- ruby-version: ${{ matrix.ruby }}
96
- - name: Install dependencies
97
- run: bundle install
98
- env:
99
- RAILS_VERSION: 5.2.4.6
100
- - name: Run tests
101
- run: bundle exec rake ci
102
- env:
103
- RAILS_VERSION: 5.2.4.6
104
- ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
105
-
106
- test_rails6_1:
107
- runs-on: ubuntu-latest
108
- strategy:
109
- matrix:
110
- ruby: ['3.0']
111
- steps:
112
- - uses: actions/checkout@v2
113
- - name: Set up Ruby
114
- uses: ruby/setup-ruby@v1
115
- with:
116
- ruby-version: ${{ matrix.ruby }}
117
- - name: Install dependencies
54
+ - name: Install dependencies with Rails ${{ matrix.rails_version }}
118
55
  run: bundle install
119
- env:
120
- RAILS_VERSION: 6.1.5
121
56
  - name: Run tests
122
- run: bundle exec rake ci
123
- env:
124
- RAILS_VERSION: 6.1.5
125
- ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-keeps --skip-action-cable --skip-test'
57
+ run: bundle exec rake
data/.solr_wrapper.yml CHANGED
@@ -3,3 +3,5 @@
3
3
  collection:
4
4
  dir: solr/conf/
5
5
  name: blacklight-core
6
+ env:
7
+ SOLR_OPTS: '-Dsolr.config.lib.enabled=true'
data/Gemfile CHANGED
@@ -32,3 +32,5 @@ else
32
32
  end
33
33
  end
34
34
  # END ENGINE_CART BLOCK
35
+
36
+ eval_gemfile File.expand_path("spec/test_app_templates/Gemfile.extra", File.dirname(__FILE__))
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.alpha2
1
+ 8.1.0
@@ -16,11 +16,11 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_dependency 'blacklight', '>= 7.15', '< 9'
19
+ s.add_dependency 'blacklight', '>= 7.15', '< 10'
20
20
  s.add_dependency "parslet"
21
21
 
22
22
  s.add_development_dependency "rails"
23
- s.add_development_dependency "rspec-rails", "~> 5.0"
23
+ s.add_development_dependency "rspec-rails", "~> 8.0"
24
24
  s.add_development_dependency "capybara"
25
25
  s.add_development_dependency 'solr_wrapper'
26
26
  s.add_development_dependency 'engine_cart', "~> 2.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)
@@ -0,0 +1,5 @@
1
+ if ENV['BLACKLIGHT_VERSION'] == 'github'
2
+ gem 'blacklight', github: 'projectblacklight/blacklight'
3
+ elsif ENV['BLACKLIGHT_VERSION'] && !ENV['BLACKLIGHT_VERSION'].empty?
4
+ gem 'blacklight', ENV['BLACKLIGHT_VERSION']
5
+ end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight_advanced_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0.alpha2
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
8
8
  - Chris Beer
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-07-12 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: blacklight
@@ -20,7 +19,7 @@ dependencies:
20
19
  version: '7.15'
21
20
  - - "<"
22
21
  - !ruby/object:Gem::Version
23
- version: '9'
22
+ version: '10'
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +29,7 @@ dependencies:
30
29
  version: '7.15'
31
30
  - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: '9'
32
+ version: '10'
34
33
  - !ruby/object:Gem::Dependency
35
34
  name: parslet
36
35
  requirement: !ruby/object:Gem::Requirement
@@ -65,14 +64,14 @@ dependencies:
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: '5.0'
67
+ version: '8.0'
69
68
  type: :development
70
69
  prerelease: false
71
70
  version_requirements: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: '5.0'
74
+ version: '8.0'
76
75
  - !ruby/object:Gem::Dependency
77
76
  name: capybara
78
77
  requirement: !ruby/object:Gem::Requirement
@@ -171,7 +170,6 @@ dependencies:
171
170
  - - ">="
172
171
  - !ruby/object:Gem::Version
173
172
  version: '0'
174
- description:
175
173
  email:
176
174
  - blacklight-development@googlegroups.com
177
175
  executables: []
@@ -190,6 +188,7 @@ files:
190
188
  - Rakefile
191
189
  - VERSION
192
190
  - blacklight_advanced_search.gemspec
191
+ - compose.yaml
193
192
  - config/routes.rb
194
193
  - lib/blacklight_advanced_search.rb
195
194
  - lib/blacklight_advanced_search/advanced_query_parser.rb
@@ -228,13 +227,13 @@ files:
228
227
  - spec/parsing_nesting/to_solr_spec.rb
229
228
  - spec/rcov.opts
230
229
  - spec/spec_helper.rb
230
+ - spec/test_app_templates/Gemfile.extra
231
231
  - spec/test_app_templates/app/controllers/catalog_controller.rb
232
232
  - spec/test_app_templates/lib/generators/test_app_generator.rb
233
233
  homepage: http://projectblacklight.org/
234
234
  licenses:
235
235
  - Apache-2.0
236
236
  metadata: {}
237
- post_install_message:
238
237
  rdoc_options: []
239
238
  require_paths:
240
239
  - lib
@@ -245,12 +244,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
244
  version: '0'
246
245
  required_rubygems_version: !ruby/object:Gem::Requirement
247
246
  requirements:
248
- - - ">"
247
+ - - ">="
249
248
  - !ruby/object:Gem::Version
250
- version: 1.3.1
249
+ version: '0'
251
250
  requirements: []
252
- rubygems_version: 3.3.7
253
- signing_key:
251
+ rubygems_version: 4.0.22
254
252
  specification_version: 4
255
253
  summary: Blacklight Advanced Search plugin
256
254
  test_files:
@@ -263,5 +261,6 @@ test_files:
263
261
  - spec/parsing_nesting/to_solr_spec.rb
264
262
  - spec/rcov.opts
265
263
  - spec/spec_helper.rb
264
+ - spec/test_app_templates/Gemfile.extra
266
265
  - spec/test_app_templates/app/controllers/catalog_controller.rb
267
266
  - spec/test_app_templates/lib/generators/test_app_generator.rb