Class: ElasticsearchDslBuilder::DSL::Search::Queries::Range

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

Instance Attribute Summary

Attributes inherited from Query

#query, #type

Instance Method Summary collapse

Constructor Details

#initialize(field = nil) ⇒ Range

Returns a new instance of Range.



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

def initialize(field = nil)
  @type = :range
  field(field)
  super()
end

Instance Method Details

#field(field) ⇒ Object

Raises:

  • (ArgumentError)


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

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

#format(format) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
23
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/range.rb', line 19

def format(format)
  raise ArgumentError, 'format must be a String' unless format.instance_of?(String)
  @format = format
  self
end

#gt(gt) ⇒ Object



25
26
27
28
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/range.rb', line 25

def gt(gt)
  @gt = gt
  self
end

#gte(gte) ⇒ Object



30
31
32
33
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/range.rb', line 30

def gte(gte)
  @gte = gte
  self
end

#lt(lt) ⇒ Object



35
36
37
38
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/range.rb', line 35

def lt(lt)
  @lt = lt
  self
end

#lte(lte) ⇒ Object



40
41
42
43
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/range.rb', line 40

def lte(lte)
  @lte = lte
  self
end

#to_hashObject



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/range.rb', line 45

def to_hash
  nested_query = {}
  nested_query.update(gt: @gt) if @gt
  nested_query.update(gte: @gte) if @gte
  nested_query.update(lt: @lt) if @lt
  nested_query.update(lte: @lte) if @lte
  nested_query.update(format: @format) if @format

  @query = { @field => nested_query }
  super
end