elasticsearch-dsl-builder 0.0.21 → 0.0.22

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: 762cbc50dd215d07f75ba84ff4d26f4b806d7e30
4
- data.tar.gz: 066bcf651217c8ae36340bb5c5e4dc576d63bfb0
3
+ metadata.gz: e9a0db02cb94d7641185730a46a6aa09be5a4a23
4
+ data.tar.gz: 4f71c26569e4ddf679dadb16f70b50484746167c
5
5
  SHA512:
6
- metadata.gz: ada22fdabd54d4771796fc125e72dbfe1cf4732bb32caf7f3f4b77d76948d5e2bbd055172b0a44c1b7190ff981737ff48bb845f2d1733ba089ecafed9fd83922
7
- data.tar.gz: c6537e9c0a7c84a07f782f452325e2a00dadf2a97b75caa971edb3899833277fef04b8b8a3c0e62627c4a0f4b2635e4d6d864792826f931aada7cd7f91d3e7b7
6
+ metadata.gz: 624c9750e42d09530ea7a6a273de272bc874ed7e0876a46507be9d700a0b9aff95f2d8373360da0b5b552604af8177d96a77d0311b71ddab7122418f515b850b
7
+ data.tar.gz: 340f67d7df01dee82d8dc35778d87b12042eeac61ae8b8a629eacee335680692d32bb8ca050ccf6065460c57a07267987fdfce3dd366c7dc6c7dc40b9d56d1fe
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elasticsearch-dsl-builder (0.0.21)
4
+ elasticsearch-dsl-builder (0.0.22)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'elasticsearch-dsl-builder'
3
- s.version = '0.0.21'
3
+ s.version = '0.0.22'
4
4
  s.date = '2017-10-06'
5
5
  s.summary = 'Library utilizing builder pattern providing Ruby API for the Elasticsearch Query DSL'
6
6
  s.description = 'TBD'
@@ -0,0 +1,37 @@
1
+ module ElasticsearchDslBuilder
2
+ module DSL
3
+ module Search
4
+ module Queries
5
+ class Ids < Query
6
+ def initialize(values = nil)
7
+ @type = :ids
8
+ values(values)
9
+ super()
10
+ end
11
+
12
+ def type(*types)
13
+ types = types.flatten
14
+ types_valid = !types.empty? && types.all? { |f| f.instance_of?(String) }
15
+ raise ArgumentError, 'must pass at least 1 String type' unless types_valid
16
+ @types ||= []
17
+ @types.concat types
18
+ self
19
+ end
20
+
21
+ def values(*values)
22
+ values = values.flatten
23
+ raise ArgumentError, 'values must be a non-empty Array' if values.empty? || values.any?(&:nil?)
24
+ @values = values
25
+ self
26
+ end
27
+
28
+ def to_hash
29
+ @query = { values: @values }
30
+ @query.update(type: @types) if @types
31
+ super
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe ElasticsearchDslBuilder::DSL::Search::Queries::Ids do
4
+ it 'should fail if type not valid' do
5
+ expect { Queries::Ids.new([1, 2]).type(nil) }.to raise_error(ArgumentError)
6
+ expect { Queries::Ids.new([1, 2]).type([]) }.to raise_error(ArgumentError)
7
+ expect { Queries::Ids.new([1, 2]).type(1) }.to raise_error(ArgumentError)
8
+ end
9
+
10
+ it 'should fail if values not valid' do
11
+ expect { Queries::Ids.new(nil) }.to raise_error(ArgumentError)
12
+ expect { Queries::Ids.new([]) }.to raise_error(ArgumentError)
13
+ end
14
+
15
+ it 'should chain create valid ES query hash' do
16
+ ids = Queries::Ids.new([1, 2]).type('type_a', 'type_b')
17
+ expect(ids.to_hash).to eq(ids: { type: ['type_a', 'type_b'], values: [1, 2] })
18
+ end
19
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch-dsl-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marvin Guerra
@@ -105,6 +105,7 @@ files:
105
105
  - lib/elasticsearch_dsl_builder/dsl/search/queries/geo_bounding_box.rb
106
106
  - lib/elasticsearch_dsl_builder/dsl/search/queries/has_child.rb
107
107
  - lib/elasticsearch_dsl_builder/dsl/search/queries/has_parent.rb
108
+ - lib/elasticsearch_dsl_builder/dsl/search/queries/ids.rb
108
109
  - lib/elasticsearch_dsl_builder/dsl/search/queries/match.rb
109
110
  - lib/elasticsearch_dsl_builder/dsl/search/queries/match_all.rb
110
111
  - lib/elasticsearch_dsl_builder/dsl/search/queries/multi_match.rb
@@ -138,6 +139,7 @@ files:
138
139
  - spec/lib/dsl/search/queries/geo_bounding_box_spec.rb
139
140
  - spec/lib/dsl/search/queries/has_child_spec.rb
140
141
  - spec/lib/dsl/search/queries/has_parent_spec.rb
142
+ - spec/lib/dsl/search/queries/ids_spec.rb
141
143
  - spec/lib/dsl/search/queries/match_all_spec.rb
142
144
  - spec/lib/dsl/search/queries/match_spec.rb
143
145
  - spec/lib/dsl/search/queries/multi_match_spec.rb
@@ -198,6 +200,7 @@ test_files:
198
200
  - spec/lib/dsl/search/queries/geo_bounding_box_spec.rb
199
201
  - spec/lib/dsl/search/queries/has_child_spec.rb
200
202
  - spec/lib/dsl/search/queries/has_parent_spec.rb
203
+ - spec/lib/dsl/search/queries/ids_spec.rb
201
204
  - spec/lib/dsl/search/queries/match_all_spec.rb
202
205
  - spec/lib/dsl/search/queries/match_spec.rb
203
206
  - spec/lib/dsl/search/queries/multi_match_spec.rb