class Elasticband::Filter::Range

Constants

RANGES

Attributes

field[RW]
ranges[RW]

Public Class Methods

new(field, ranges) click to toggle source
# File lib/elasticband/filter/range.rb, line 8
def initialize(field, ranges)
  self.field = field.to_sym
  self.ranges = permitted_ranges(ranges)
end

Public Instance Methods

parsed_ranges() click to toggle source
# File lib/elasticband/filter/range.rb, line 21
def parsed_ranges
  translated_range = ranges.dup

  translated_range[:gte] = translated_range.delete(:gteq) if translated_range.key?(:gteq)
  translated_range[:lte] = translated_range.delete(:lteq) if translated_range.key?(:lteq)

  translated_range
end
permitted_ranges(ranges) click to toggle source
# File lib/elasticband/filter/range.rb, line 17
def permitted_ranges(ranges)
  ranges.keep_if { |key, _| RANGES.include?(key) }
end
to_h() click to toggle source
# File lib/elasticband/filter/range.rb, line 13
def to_h
  { range: { field => parsed_ranges } }
end