module Toller

Toller

Query param based filtering and sorting

Constants

VERSION

Public Instance Methods

_filters() click to toggle source
# File lib/toller.rb, line 41
def _filters
  @_filters ||= []
end
filter_on(parameter, type:, **options) click to toggle source
# File lib/toller.rb, line 33
def filter_on(parameter, type:, **options)
  _filters << Filter.new(parameter, type, options)
end
filter_param_key() click to toggle source
# File lib/toller.rb, line 54
def filter_param_key
  :filters
end
filter_params() click to toggle source
# File lib/toller.rb, line 46
def filter_params
  params.fetch(filter_param_key.to_sym, {})
end
retrieve(collection) click to toggle source
# File lib/toller.rb, line 24
def retrieve(collection)
  Retriever.filter(collection, filter_params, sort_params, retrievals)
end
sort_on(parameter, type:, **options) click to toggle source
# File lib/toller.rb, line 37
def sort_on(parameter, type:, **options)
  _filters << Sort.new(parameter, type, options)
end
sort_param_key() click to toggle source
# File lib/toller.rb, line 58
def sort_param_key
  :sort
end
sort_params() click to toggle source
# File lib/toller.rb, line 50
def sort_params
  params.fetch(sort_param_key.to_sym, '').split(',')
end

Private Instance Methods

retrievals() click to toggle source
# File lib/toller.rb, line 64
def retrievals
  self.class.ancestors.flat_map { |klass| klass.try(:_filters) }.compact
end