Class: ElasticsearchDslBuilder::DSL::Search::Queries::Terms

Inherits:
Query
  • Object
show all
Defined in:
lib/elasticsearch_dsl_builder/dsl/search/queries/terms.rb

Instance Attribute Summary

Attributes inherited from Query

#query, #type

Instance Method Summary collapse

Constructor Details

#initialize(field = nil, values = nil) ⇒ Terms

Returns a new instance of Terms.



6
7
8
9
10
11
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/terms.rb', line 6

def initialize(field = nil, values = nil)
  @type = :terms
  field(field)
  values(values)
  super()
end

Instance Method Details

#field(field) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
25
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/terms.rb', line 20

def field(field)
  field_valid = field.instance_of?(String) || field.instance_of?(Symbol)
  raise ArgumentError, 'field must be a String or Symbol' unless field_valid
  @field = field.to_sym
  self
end

#to_hashObject



27
28
29
30
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/terms.rb', line 27

def to_hash
  @query = { @field => @values }
  super
end

#values(*values) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
18
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/terms.rb', line 13

def values(*values)
  values = values.flatten
  raise ArgumentError, 'values must be a non-empty Array' if values.empty? || values.any?(&:nil?)
  @values = values
  self
end