class Drillbit::Parameters::Filter
Constants
- DATE_RANGE
- ISO8601
- NUMERICAL
- NUMERICAL_RANGE
Attributes
raw_parameters[RW]
Public Class Methods
new(raw_parameters)
click to toggle source
# File lib/drillbit/parameters/filter.rb, line 13 def initialize(raw_parameters) self.raw_parameters = raw_parameters || {} end
Public Instance Methods
each_with_object(memoized) { |name, format_value(value), memoized| ... }
click to toggle source
# File lib/drillbit/parameters/filter.rb, line 21 def each_with_object(memoized) compacted_parameters.each do |name, value| memoized = yield name, format_value(value), memoized end memoized end
present?()
click to toggle source
# File lib/drillbit/parameters/filter.rb, line 17 def present? compacted_parameters.any? end
Private Instance Methods
compacted_parameters()
click to toggle source
# File lib/drillbit/parameters/filter.rb, line 31 def compacted_parameters @compacted_parameters ||= raw_parameters.reject do |name, value| name == 'query' || value == '' || value.nil? end end
format_value(value)
click to toggle source
rubocop:disable Lint/AssignmentInCondition
# File lib/drillbit/parameters/filter.rb, line 40 def format_value(value) return value unless value.is_a?(String) if range_points = value.match(DATE_RANGE) exclusive = value.include? '...' starting_point = Time.iso8601(range_points[1]) ending_point = Time.iso8601(range_points[2]) Range.new(starting_point, ending_point, exclusive) elsif range_points = value.match(NUMERICAL_RANGE) exclusive = value.include? '...' starting_point = range_points[1].to_f ending_point = if range_points[2] == 'Infinity' 9_999_999 else range_points[2].to_f end Range.new(starting_point, ending_point, exclusive) else value end end