gsa 0.9.1 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/fixtures/cassette_library/delete_many_records.yml +6 -6
- data/fixtures/cassette_library/delete_single_record.yml +6 -6
- data/fixtures/cassette_library/many_records.yml +6 -6
- data/fixtures/cassette_library/many_results_no_filters.yml +3046 -392
- data/fixtures/cassette_library/many_results_with_filters.yml +146 -352
- data/fixtures/cassette_library/no_result_no_filters.yml +54 -1
- data/fixtures/cassette_library/no_result_with_filters.yml +55 -1
- data/fixtures/cassette_library/single_record.yml +6 -6
- data/fixtures/cassette_library/single_result_no_filters.yml +80 -569
- data/fixtures/cassette_library/single_result_with_filters.yml +78 -1
- data/fixtures/result_sets/many.txt +1 -1
- data/fixtures/uids/many.txt +1 -1
- data/lib/defaults.rb +1 -0
- data/lib/gsa/searcher.rb +10 -9
- data/lib/gsa/version.rb +1 -1
- data/spec/fixtures.rb +1 -1
- data/spec/lib/gsa_spec.rb +5 -80
- metadata +2 -2
data/fixtures/uids/many.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
["
|
1
|
+
["7903", "836", "68999", "63598", "69030", "8248", "56304", "53618", "8014", "8012", "6194", "8013", "54154", "8000", "68579", "53604", "68840", "68843", "68846", "68841", "68848", "67202", "66890", "67214", "67209", "1947", "53602", "53606", "53605"]
|
data/lib/defaults.rb
CHANGED
@@ -21,6 +21,7 @@ module Defaults
|
|
21
21
|
DEFAULT_OUTPUT = "xml_no_dtd" # OPTIONS: xml_no_dtd, xml
|
22
22
|
DEFAULT_START = "0" # OPTIONS: 0..max_search_results
|
23
23
|
DEFAULT_CLIENT = "default_frontend"
|
24
|
+
DEFAULT_COLLECTION = "default_collection" # maps to 'site'
|
24
25
|
NO_RESULTS = 0
|
25
26
|
|
26
27
|
# values for making xml files
|
data/lib/gsa/searcher.rb
CHANGED
@@ -2,16 +2,17 @@ module GSA
|
|
2
2
|
class Searcher
|
3
3
|
def self.search(query, args={})
|
4
4
|
query = clean_query(query)
|
5
|
-
filter = args[:filter]
|
6
|
-
getfields = args[:getfields]
|
7
|
-
sort = args[:sort]
|
8
|
-
num = args[:num]
|
9
|
-
output = args[:output]
|
10
|
-
start = args[:start]
|
11
|
-
client = args[:client]
|
12
|
-
|
5
|
+
filter = args[:filter] || GSA::DEFAULT_FILTER
|
6
|
+
getfields = args[:getfields] || GSA::DEFAULT_GETFIELDS
|
7
|
+
sort = args[:sort] || GSA::DEFAULT_SORT
|
8
|
+
num = args[:num] || GSA::DEFAULT_NUM
|
9
|
+
output = args[:output] || GSA::DEFAULT_OUTPUT
|
10
|
+
start = args[:start] || GSA::DEFAULT_START
|
11
|
+
client = args[:client] || GSA::DEFAULT_CLIENT
|
12
|
+
site = args[:collection] || GSA::DEFAULT_COLLECTION
|
13
|
+
requiredfields = args[:filters] || nil
|
13
14
|
|
14
|
-
search = "#{GSA.base_uri}/search?q=#{query}&filter=#{filter}&getfields=#{getfields}&sort=#{sort}&num=#{num}&start=#{start}&output=#{output}&client=#{client}"
|
15
|
+
search = "#{GSA.base_uri}/search?q=#{query}&filter=#{filter}&site=#{site}&getfields=#{getfields}&sort=#{sort}&num=#{num}&start=#{start}&output=#{output}&client=#{client}"
|
15
16
|
search = "#{search}&requiredfields=#{clean_query(requiredfields)}" if requiredfields
|
16
17
|
|
17
18
|
search_results = parsed_json( RestClient.get(search) )
|
data/lib/gsa/version.rb
CHANGED
data/spec/fixtures.rb
CHANGED
data/spec/lib/gsa_spec.rb
CHANGED
@@ -20,7 +20,7 @@ describe GSA do
|
|
20
20
|
:records => many_records,
|
21
21
|
:searchable => [:name, :description],
|
22
22
|
:datasource_name => "products",
|
23
|
-
:datasource_uri => "
|
23
|
+
:datasource_uri => "https://0.0.0.0:3000/products",
|
24
24
|
:datasource_uid => "id"
|
25
25
|
)
|
26
26
|
results.should eq success_text
|
@@ -37,7 +37,7 @@ describe GSA do
|
|
37
37
|
:records => many_records,
|
38
38
|
:searchable => [:name, :description],
|
39
39
|
:datasource_name => "products",
|
40
|
-
:datasource_uri => "
|
40
|
+
:datasource_uri => "https://0.0.0.0:3000/products",
|
41
41
|
:datasource_uid => "id"
|
42
42
|
)
|
43
43
|
results.should eq success_text
|
@@ -57,7 +57,7 @@ describe GSA do
|
|
57
57
|
:records => many_records,
|
58
58
|
:searchable => [:name, :description],
|
59
59
|
:datasource_name => "products",
|
60
|
-
:datasource_uri => "
|
60
|
+
:datasource_uri => "https://0.0.0.0:3000/products",
|
61
61
|
:datasource_uid => "id",
|
62
62
|
:delete? => true
|
63
63
|
)
|
@@ -75,7 +75,7 @@ describe GSA do
|
|
75
75
|
:records => one_records,
|
76
76
|
:searchable => [:name, :description],
|
77
77
|
:datasource_name => "products",
|
78
|
-
:datasource_uri => "
|
78
|
+
:datasource_uri => "https://0.0.0.0:3000/products",
|
79
79
|
:datasource_uid => "id",
|
80
80
|
:delete? => true
|
81
81
|
)
|
@@ -98,7 +98,7 @@ describe GSA do
|
|
98
98
|
:records => one_records,
|
99
99
|
:searchable => [:name, :description],
|
100
100
|
:datasource_name => "products",
|
101
|
-
:datasource_uri => "
|
101
|
+
:datasource_uri => "https://0.0.0.0:3000/products",
|
102
102
|
:datasource_uid => "id",
|
103
103
|
:delete? => true
|
104
104
|
)
|
@@ -134,28 +134,6 @@ describe GSA do
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
-
context "with a query yielding a single match" do
|
138
|
-
|
139
|
-
let(:query) { one_query }
|
140
|
-
let(:result_set) { one_results }
|
141
|
-
|
142
|
-
it "returns a single record" do
|
143
|
-
|
144
|
-
VCR.use_cassette("single_result_no_filters") do
|
145
|
-
results = GSA.search(query)
|
146
|
-
results[:result_sets].count.should eq 1
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
it "returns the single result in the expected 'pretty' format" do
|
151
|
-
|
152
|
-
VCR.use_cassette("single_result_no_filters") do
|
153
|
-
results = GSA.search(query)
|
154
|
-
results[:result_sets].should eq result_set[:result_sets]
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
137
|
context "with a query yielding no matches" do
|
160
138
|
|
161
139
|
let(:query) { none_query }
|
@@ -187,59 +165,6 @@ describe GSA do
|
|
187
165
|
results[:result_sets].count.should be < results_set[:result_sets].count
|
188
166
|
end
|
189
167
|
end
|
190
|
-
|
191
|
-
it "should only contain results matched in the unfiltered results" do
|
192
|
-
|
193
|
-
VCR.use_cassette("many_results_with_filters") do
|
194
|
-
results = GSA.search(query, :filters => filters)
|
195
|
-
|
196
|
-
filtered_results = []
|
197
|
-
results_set[:result_sets].each {|result|
|
198
|
-
result[:metatags].each {|tag|
|
199
|
-
if tag[:meta_name] == filter_name && tag[:meta_value] == filter_value
|
200
|
-
filtered_results << result
|
201
|
-
end
|
202
|
-
}
|
203
|
-
}
|
204
|
-
|
205
|
-
result_uids = GSA.uids(results[:result_sets], uid)
|
206
|
-
filtered_uids = GSA.uids(filtered_results, uid)
|
207
|
-
result_uids.should eq filtered_uids
|
208
|
-
end
|
209
|
-
end
|
210
|
-
end
|
211
|
-
|
212
|
-
context "with a query yielding a single result" do
|
213
|
-
|
214
|
-
let(:query) { many_query }
|
215
|
-
let(:results_set) { many_results }
|
216
|
-
let(:filter_1_name) { "attribute_color" }
|
217
|
-
let(:filter_1_value) { "Red" }
|
218
|
-
let(:filter_2_name) { "attribute_brand" }
|
219
|
-
let(:filter_2_value) { "Vickerman" }
|
220
|
-
let(:filters) { "#{filter_1_name}:#{filter_1_value}.#{filter_2_name}:#{filter_2_value}" }
|
221
|
-
|
222
|
-
it "returns a single filtered result" do
|
223
|
-
|
224
|
-
VCR.use_cassette("single_result_with_filters") do
|
225
|
-
results = GSA.search(query, :filters => filters)
|
226
|
-
results[:result_sets].count.should eq 1
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
it "returns a result with the expected matching filters" do
|
231
|
-
|
232
|
-
VCR.use_cassette("single_result_with_filters") do
|
233
|
-
results = GSA.search(query, :filters => filters)
|
234
|
-
|
235
|
-
results[:result_sets].each.inject([]) {|flags, result| result[:metatags].each {|tag|
|
236
|
-
flags << 1 if tag[:meta_name] == filter_1_name && tag[:meta_value] == filter_1_value
|
237
|
-
flags << 1 if tag[:meta_name] == filter_2_name && tag[:meta_value] == filter_2_value
|
238
|
-
}
|
239
|
-
flags
|
240
|
-
}.should eq [1, 1]
|
241
|
-
end
|
242
|
-
end
|
243
168
|
end
|
244
169
|
|
245
170
|
context "with a query yielding no results" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gsa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Long
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|