module 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