Commit 023ee183541d45d4f4249956076ae60b603146f6
1 parent
94081b28
Exists in
master
and in
21 other branches
Ensure options aren't modified, speed up tests, and small style updates
Showing
4 changed files
with
10 additions
and
13 deletions
Show diff stats
lib/searchkick/index_options.rb
@@ -281,7 +281,7 @@ module Searchkick | @@ -281,7 +281,7 @@ module Searchkick | ||
281 | } | 281 | } |
282 | end | 282 | end |
283 | 283 | ||
284 | - options[:geo_shapes] = options[:geo_shapes].product([{}]).to_h if options[:geo_shapes].is_a? Array | 284 | + options[:geo_shapes] = options[:geo_shapes].product([{}]).to_h if options[:geo_shapes].is_a?(Array) |
285 | (options[:geo_shapes] || {}).each do |field, shape_options| | 285 | (options[:geo_shapes] || {}).each do |field, shape_options| |
286 | mapping[field] = shape_options.merge(type: "geo_shape") | 286 | mapping[field] = shape_options.merge(type: "geo_shape") |
287 | end | 287 | end |
lib/searchkick/query.rb
@@ -829,13 +829,13 @@ module Searchkick | @@ -829,13 +829,13 @@ module Searchkick | ||
829 | } | 829 | } |
830 | } | 830 | } |
831 | when :geo_shape | 831 | when :geo_shape |
832 | - op_value[:coordinates] = coordinate_array(op_value[:coordinates]) if op_value[:coordinates] | ||
833 | - relation = op_value.delete(:relation) || 'intersects' | 832 | + shape = op_value.except(:relation) |
833 | + shape[:coordinates] = coordinate_array(shape[:coordinates]) if shape[:coordinates] | ||
834 | filters << { | 834 | filters << { |
835 | geo_shape: { | 835 | geo_shape: { |
836 | field => { | 836 | field => { |
837 | - relation: relation, | ||
838 | - shape: op_value | 837 | + relation: op_value[:relation] || "intersects", |
838 | + shape: shape | ||
839 | } | 839 | } |
840 | } | 840 | } |
841 | } | 841 | } |
test/geo_shape_test.rb
@@ -2,14 +2,14 @@ require_relative "test_helper" | @@ -2,14 +2,14 @@ require_relative "test_helper" | ||
2 | 2 | ||
3 | class GeoShapeTest < Minitest::Test | 3 | class GeoShapeTest < Minitest::Test |
4 | def setup | 4 | def setup |
5 | - super | 5 | + Region.destroy_all |
6 | store [ | 6 | store [ |
7 | { | 7 | { |
8 | name: "Region A", | 8 | name: "Region A", |
9 | text: "The witch had a cat", | 9 | text: "The witch had a cat", |
10 | territory: { | 10 | territory: { |
11 | type: "polygon", | 11 | type: "polygon", |
12 | - coordinates: [[[30,40],[35,45],[40,40],[40,30],[30,30],[30,40]]] | 12 | + coordinates: [[[30, 40], [35, 45], [40, 40], [40, 30], [30, 30], [30, 40]]] |
13 | } | 13 | } |
14 | }, | 14 | }, |
15 | { | 15 | { |
@@ -17,7 +17,7 @@ class GeoShapeTest < Minitest::Test | @@ -17,7 +17,7 @@ class GeoShapeTest < Minitest::Test | ||
17 | text: "and a very tall hat", | 17 | text: "and a very tall hat", |
18 | territory: { | 18 | territory: { |
19 | type: "polygon", | 19 | type: "polygon", |
20 | - coordinates: [[[50,60],[55,65],[60,60],[60,50],[50,50],[50,60]]] | 20 | + coordinates: [[[50, 60], [55, 65], [60, 60], [60, 50], [50, 50], [50, 60]]] |
21 | } | 21 | } |
22 | }, | 22 | }, |
23 | { | 23 | { |
@@ -25,7 +25,7 @@ class GeoShapeTest < Minitest::Test | @@ -25,7 +25,7 @@ class GeoShapeTest < Minitest::Test | ||
25 | text: "and long ginger hair which she wore in a plait", | 25 | text: "and long ginger hair which she wore in a plait", |
26 | territory: { | 26 | territory: { |
27 | type: "polygon", | 27 | type: "polygon", |
28 | - coordinates: [[[10,20],[15,25],[20,20],[20,10],[10,10],[10,20]]] | 28 | + coordinates: [[[10, 20], [15, 25], [20, 20], [20, 10], [10, 10], [10, 20]]] |
29 | } | 29 | } |
30 | } | 30 | } |
31 | ], Region | 31 | ], Region |
@@ -149,7 +149,7 @@ class GeoShapeTest < Minitest::Test | @@ -149,7 +149,7 @@ class GeoShapeTest < Minitest::Test | ||
149 | geo_shape: { | 149 | geo_shape: { |
150 | type: "envelope", | 150 | type: "envelope", |
151 | relation: "contains", | 151 | relation: "contains", |
152 | - coordinates: [[12, 13], [13,12]] | 152 | + coordinates: [[12, 13], [13, 12]] |
153 | } | 153 | } |
154 | } | 154 | } |
155 | } | 155 | } |
test/test_helper.rb
@@ -414,8 +414,6 @@ Product.create!(name: "Set mapping") | @@ -414,8 +414,6 @@ Product.create!(name: "Set mapping") | ||
414 | Store.reindex | 414 | Store.reindex |
415 | Animal.reindex | 415 | Animal.reindex |
416 | Speaker.reindex | 416 | Speaker.reindex |
417 | - | ||
418 | -Region.searchkick_index.delete if Region.searchkick_index.exists? | ||
419 | Region.reindex | 417 | Region.reindex |
420 | 418 | ||
421 | class Minitest::Test | 419 | class Minitest::Test |
@@ -424,7 +422,6 @@ class Minitest::Test | @@ -424,7 +422,6 @@ class Minitest::Test | ||
424 | Store.destroy_all | 422 | Store.destroy_all |
425 | Animal.destroy_all | 423 | Animal.destroy_all |
426 | Speaker.destroy_all | 424 | Speaker.destroy_all |
427 | - Region.destroy_all | ||
428 | end | 425 | end |
429 | 426 | ||
430 | protected | 427 | protected |