blacklight_advanced_search 6.2.0 → 6.2.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/VERSION +1 -1
- data/lib/blacklight_advanced_search/advanced_search_builder.rb +19 -19
- data/spec/lib/advanced_search_builder_spec.rb +17 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 050411c1a81b12203d148e6573bdcf65a1e24f6d
|
|
4
|
+
data.tar.gz: 23537090bf069c31ed54b42f07bcc60fd18fdf86
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 96ccfb9dfb3c8a8b14bb973ff9adaff70ce15e722b706b0b428396e3c2b5e08263bc2f5b0bdf14b80a6a64c5eb01ce311dce4585032a7f279b18dfe172bdc6f2
|
|
7
|
+
data.tar.gz: 25f215056e4225475c068732e8facd4c09c60e71d3a2a4bd90ce44a5f4de916608d0d775435fa8fd452edb6b94abeee69b70c861e0fd727d7c428d1260133aca
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.2.
|
|
1
|
+
6.2.1
|
|
@@ -48,29 +48,29 @@ module BlacklightAdvancedSearch
|
|
|
48
48
|
# parse and send it straight to solr same as if advanced_parse_q
|
|
49
49
|
# were not being used.
|
|
50
50
|
def add_advanced_parse_q_to_solr(solr_parameters)
|
|
51
|
-
|
|
52
|
-
field_def = search_field_def_for_key(blacklight_params[:search_field]) ||
|
|
53
|
-
default_search_field
|
|
51
|
+
return if blacklight_params[:q].blank? || !blacklight_params[:q].respond_to?(:to_str)
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
field_def = search_field_def_for_key(blacklight_params[:search_field]) ||
|
|
54
|
+
default_search_field
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
# If the individual field has advanced_parse_q suppressed, punt
|
|
57
|
+
return if field_def[:advanced_parse] == false
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
begin
|
|
64
|
-
adv_search_params = ParsingNesting::Tree.parse(blacklight_params[:q], blacklight_config.advanced_search[:query_parser]).to_single_query_params(solr_local_params)
|
|
59
|
+
solr_direct_params = field_def[:solr_parameters] || {}
|
|
60
|
+
solr_local_params = field_def[:solr_local_parameters] || {}
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
62
|
+
# See if we can parse it, if we can't, we're going to give up
|
|
63
|
+
# and just allow basic search, perhaps with a warning.
|
|
64
|
+
begin
|
|
65
|
+
adv_search_params = ParsingNesting::Tree.parse(blacklight_params[:q], blacklight_config.advanced_search[:query_parser]).to_single_query_params(solr_local_params)
|
|
66
|
+
|
|
67
|
+
BlacklightAdvancedSearch.deep_merge!(solr_parameters, solr_direct_params)
|
|
68
|
+
BlacklightAdvancedSearch.deep_merge!(solr_parameters, adv_search_params)
|
|
69
|
+
rescue *PARSLET_FAILED_EXCEPTIONS => e
|
|
70
|
+
# do nothing, don't merge our input in, keep basic search
|
|
71
|
+
# optional TODO, display error message in flash here, but hard to
|
|
72
|
+
# display a good one.
|
|
73
|
+
return
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
|
|
@@ -44,6 +44,23 @@ describe BlacklightAdvancedSearch::AdvancedSearchBuilder do
|
|
|
44
44
|
obj.add_advanced_parse_q_to_solr(solr_params)
|
|
45
45
|
expect(solr_params[:q]).to eq(unparseable_q)
|
|
46
46
|
end
|
|
47
|
+
|
|
48
|
+
describe 'when parslet fails' do
|
|
49
|
+
let(:failing_q) { ")(" }
|
|
50
|
+
let(:params) { { :q => failing_q } }
|
|
51
|
+
it 'does not return the query that could not be parsed' do
|
|
52
|
+
obj.add_advanced_parse_q_to_solr(solr_params)
|
|
53
|
+
expect(solr_params[:q]).to be_nil
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe 'when `q` is a hash' do
|
|
58
|
+
let(:params) { { q: { id: ['a'] } } }
|
|
59
|
+
it 'does not return the query that could not be parsed' do
|
|
60
|
+
obj.add_advanced_parse_q_to_solr(solr_params)
|
|
61
|
+
expect(solr_params[:q]).to be_nil
|
|
62
|
+
end
|
|
63
|
+
end
|
|
47
64
|
end
|
|
48
65
|
|
|
49
66
|
context "when advanced_parse is false" do
|
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: 6.2.
|
|
4
|
+
version: 6.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Rochkind
|
|
@@ -266,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
266
266
|
version: '0'
|
|
267
267
|
requirements: []
|
|
268
268
|
rubyforge_project: blacklight
|
|
269
|
-
rubygems_version: 2.5.
|
|
269
|
+
rubygems_version: 2.5.1
|
|
270
270
|
signing_key:
|
|
271
271
|
specification_version: 4
|
|
272
272
|
summary: Blacklight Advanced Search plugin
|