class Daedal::Filters::GeoDistanceRangeFilter
Constants
- POSSIBLE_COMPARE_OPTIONS
Public Class Methods
new(options={})
click to toggle source
Calls superclass method
# File lib/daedal/filters/geo_distance_range_filter.rb, line 18 def initialize(options={}) super options validate_compare_options(options) end
Public Instance Methods
to_hash()
click to toggle source
# File lib/daedal/filters/geo_distance_range_filter.rb, line 23 def to_hash { geo_distance_range: { field => { lat: lat, lon: lon } }.merge(compare_options) } end
Private Instance Methods
compare_options()
click to toggle source
# File lib/daedal/filters/geo_distance_range_filter.rb, line 36 def compare_options POSSIBLE_COMPARE_OPTIONS.each_with_object({}) do |compare_option, compare_options| compare_options[compare_option] = decorate_distance(attributes[compare_option]) if attributes[compare_option] end end
decorate_distance(distance)
click to toggle source
# File lib/daedal/filters/geo_distance_range_filter.rb, line 42 def decorate_distance(distance) "#{distance}#{unit}" end
validate_compare_options(options)
click to toggle source
# File lib/daedal/filters/geo_distance_range_filter.rb, line 46 def validate_compare_options(options) if options.values_at(*POSSIBLE_COMPARE_OPTIONS).compact.empty? raise 'Must give at least one of gte, gt, lt, or lte' end raise 'gte & gt are not valid together' if gte && gt raise 'gte & gt are not valid together' if lte && lt end