elastic-rails 0.6.3 → 0.6.4

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: 7b7327309b8afdf84080efb767efa3ba254db36e
4
- data.tar.gz: 74a5e89ab5f4b8dff0e547cd6eca69a7534bca72
3
+ metadata.gz: 66b9bacfe2ed32b87930002d60d7f84d8c996c05
4
+ data.tar.gz: e2d4f108fb27db7ec85afdb861f35a009db2db0f
5
5
  SHA512:
6
- metadata.gz: 917fcdbc89a3fb8e9e1abb860426f2b574578483c14735f66c2eb1d9e9411d526ffe7ba0b46abcc86aa9a43d697ff0082a2b0d96181c2ccacff891faf0c449db
7
- data.tar.gz: 1cae5b66a5cd48eb3f802ca733e657e39a84ce028b1bceba55f2e5f15ad24a1469c9d29d7cb4ddff8d22332f7871b27da5269d7191f6b2d36e3d08637c8bca1a
6
+ metadata.gz: 425e22896f8f062c17dd12ead7ec8f052cf3e6a0151c71c788cc55636f3a3db2351e1a4af8bf6af87b3a7441f13c65ebecef0da7925baac0ddc709aeceffa632
7
+ data.tar.gz: 9e95d2d6e6ba9d85ae68ad88e241d61ba2558d45e20e1c939006eae783c8c7041f095eb18e2f9dc561f29a6271e7a5430188c252eaa9d81166f770338799212e
@@ -7,33 +7,39 @@ module Elastic::Commands
7
7
  node = build_or_node(params)
8
8
  end
9
9
 
10
- node.simplify
10
+ node.try(:simplify)
11
11
  end
12
12
 
13
13
  private
14
14
 
15
15
  def build_or_node(_array)
16
- Elastic::Nodes::Boolean.build_or(_array.map do |part|
16
+ parts = _array.map do |part|
17
17
  case part
18
- when Elastic::Query
19
- extract_query_node part
20
18
  when Hash
21
19
  build_and_node part
20
+ when Elastic::Query
21
+ extract_query_node part
22
22
  else
23
23
  raise ArgumentError, "expected hash or query but got #{part.class}"
24
24
  end
25
- end)
26
- end
25
+ end.reject(&:nil?)
27
26
 
28
- def extract_query_node(_query)
29
- raise ArgumentError, "query type mismatch, expected #{index.class}" if _query.index != index
30
- _query.as_query_node
27
+ return nil if parts.empty?
28
+ Elastic::Nodes::Boolean.build_or(parts)
31
29
  end
32
30
 
33
31
  def build_and_node(_hash)
34
- Elastic::Nodes::Boolean.build_and(_hash.map do |field, options|
32
+ parts = _hash.map do |field, options|
35
33
  build_query_node field, options
36
- end)
34
+ end.reject(&:nil?)
35
+
36
+ return nil if parts.empty?
37
+ Elastic::Nodes::Boolean.build_and(parts)
38
+ end
39
+
40
+ def extract_query_node(_query)
41
+ raise ArgumentError, "query type mismatch, expected #{index.class}" if _query.index != index
42
+ _query.as_query_node
37
43
  end
38
44
 
39
45
  def build_query_node(_field, _options)
@@ -6,19 +6,22 @@ module Elastic::Dsl
6
6
 
7
7
  def must(*_queries)
8
8
  with_bool_query do |query|
9
- query.must build_query_from_params(_queries)
9
+ node = build_query_from_params(_queries)
10
+ query.must node unless node.nil?
10
11
  end
11
12
  end
12
13
 
13
14
  def must_not(*_queries)
14
15
  with_bool_query do |query|
15
- query.must_not build_query_from_params(_queries)
16
+ node = build_query_from_params(_queries)
17
+ query.must_not node unless node.nil?
16
18
  end
17
19
  end
18
20
 
19
21
  def should(*_queries)
20
22
  with_bool_query do |query|
21
- query.should build_query_from_params(_queries)
23
+ node = build_query_from_params(_queries)
24
+ query.should node unless node.nil?
22
25
  end
23
26
  end
24
27
 
@@ -1,3 +1,3 @@
1
1
  module Elastic
2
- VERSION = "0.6.3"
2
+ VERSION = "0.6.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastic-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ignacio Baixas