arelastic 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d00eda71df4112d4692e221660b7899ab6d558a
4
- data.tar.gz: f4131059d4b6a9e5718fb75b7e9fb6a35d7971ed
3
+ metadata.gz: 641cd6053b327302f8529f932cdc9ebbdd1cf2db
4
+ data.tar.gz: 5efe134f612087964773827a385cd666a0772d81
5
5
  SHA512:
6
- metadata.gz: 75cbb39ad6a33f5e5f89ff6b8085184a86dc9a86a58a52a9c71d4a16d304279941c56ce63dee00d98fe1e0580e031024d5f908073e7b55c40e61df567babf098
7
- data.tar.gz: d05d03b04f7920652de4cc3bff7141b06d6c9eb352511a37d7b9233ba4ccd3df60aeff8eb6736f6bfc4a8d39efce5700d7617e656f9bf79a5bf8943c4893f411
6
+ metadata.gz: beb4a0a08070175f28a8a0c3ac643862286a04db60bdc745525283af0966caa77331b5c74fd7e8f054c5569f754f45f846d737c3ee3ff5d16f07ecacf8118fd9
7
+ data.tar.gz: 0814f98db8b56257e05f607f64f551b3e311a6f02248f2f8e246e3004cb1bb52440b0ea992aa47a01dee280527a9e411167be9159197398ec591be2289105cfd
@@ -2,6 +2,7 @@ require 'arelastic/filters/filter'
2
2
 
3
3
  require 'arelastic/filters/and'
4
4
  require 'arelastic/filters/exists'
5
+ require 'arelastic/filters/geo_bounding_box'
5
6
  require 'arelastic/filters/geo_distance'
6
7
  require 'arelastic/filters/has_child'
7
8
  require 'arelastic/filters/ids'
@@ -0,0 +1,19 @@
1
+ module Arelastic
2
+ module Filters
3
+ class GeoBoundingBox < Arelastic::Filters::Filter
4
+ attr_accessor :field, :top_left, :bottom_right, :options
5
+ def initialize(field, top_left, bottom_right, options = {})
6
+ @field = field
7
+ @top_left = top_left
8
+ @bottom_right = bottom_right
9
+ @options = options
10
+ end
11
+
12
+ def as_elastic
13
+ params = {field => {"top_left" => top_left, "bottom_right" => bottom_right}}.update(options)
14
+
15
+ { "geo_bounding_box" => params }
16
+ end
17
+ end
18
+ end
19
+ end
@@ -16,4 +16,4 @@ module Arelastic
16
16
  end
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -0,0 +1,36 @@
1
+ require 'helper'
2
+
3
+ class Arelastic::Filters::GeoBoundingBoxTest < Minitest::Test
4
+ def test_as_elastic
5
+ expected = {
6
+ "geo_bounding_box" => {
7
+ "location" => {
8
+ "top_left" => [40, -70],
9
+ "bottom_right" => [30, -60]
10
+ }
11
+ }
12
+ }
13
+
14
+ assert_equal(
15
+ expected,
16
+ Arelastic::Filters::GeoBoundingBox.new('location', [40, -70], [30, -60]).as_elastic
17
+ )
18
+ end
19
+
20
+ def test_as_elastic_with_options
21
+ expected = {
22
+ "geo_bounding_box" => {
23
+ "index" => true,
24
+ "location" => {
25
+ "top_left" => [40, -70],
26
+ "bottom_right" => [30, -60]
27
+ }
28
+ }
29
+ }
30
+
31
+ assert_equal(
32
+ expected,
33
+ Arelastic::Filters::GeoBoundingBox.new('location', [40, -70], [30, -60], 'index' => true).as_elastic
34
+ )
35
+ end
36
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arelastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Higgins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-26 00:00:00.000000000 Z
11
+ date: 2016-01-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Build Elastic Search queries with objects
14
14
  email: developer@matthewhiggins.com
@@ -42,6 +42,7 @@ files:
42
42
  - lib/arelastic/filters/and.rb
43
43
  - lib/arelastic/filters/exists.rb
44
44
  - lib/arelastic/filters/filter.rb
45
+ - lib/arelastic/filters/geo_bounding_box.rb
45
46
  - lib/arelastic/filters/geo_distance.rb
46
47
  - lib/arelastic/filters/has_child.rb
47
48
  - lib/arelastic/filters/ids.rb
@@ -114,6 +115,7 @@ files:
114
115
  - test/arelastic/builders/sort_test.rb
115
116
  - test/arelastic/filters/exists_test.rb
116
117
  - test/arelastic/filters/filter_test.rb
118
+ - test/arelastic/filters/geo_bounding_box_test.rb
117
119
  - test/arelastic/filters/geo_distance_test.rb
118
120
  - test/arelastic/filters/has_child_test.rb
119
121
  - test/arelastic/filters/ids_test.rb
@@ -160,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
162
  version: 1.8.11
161
163
  requirements: []
162
164
  rubyforge_project:
163
- rubygems_version: 2.4.5
165
+ rubygems_version: 2.4.5.1
164
166
  signing_key:
165
167
  specification_version: 4
166
168
  summary: Elastic Search query builder