Class: ActiveAdmin::Favorites::Favorite::RangeDetector

Inherits:
Object
  • Object
show all
Defined in:
app/models/active_admin/favorites/favorite/range_detector.rb

Constant Summary collapse

DATE_PREDICATES =
%w[gteq lteq gt lt].freeze
DATE_PATTERN =
/\A\d{4}-\d{2}-\d{2}/

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query_string:, resource_key:) ⇒ RangeDetector

Returns a new instance of RangeDetector.



14
15
16
17
# File 'app/models/active_admin/favorites/favorite/range_detector.rb', line 14

def initialize(query_string:, resource_key:)
  @query_filters = QueryParams.parse(query_string).fetch("q", {})
  @resource_key = resource_key
end

Class Method Details

.call(query_string:, resource_key:) ⇒ Object



10
11
12
# File 'app/models/active_admin/favorites/favorite/range_detector.rb', line 10

def self.call(query_string:, resource_key:)
  new(query_string:, resource_key:).call
end

Instance Method Details

#callObject



19
20
21
22
23
24
# File 'app/models/active_admin/favorites/favorite/range_detector.rb', line 19

def call
  attributes = allowed_attributes
  attributes.filter_map do |attribute|
    detect_range(attribute)
  end
end