module Croods::Controller::Collection
Protected Instance Methods
collection()
click to toggle source
# File lib/croods/controller/collection.rb, line 60 def collection list = resource.apply_filters(policy_scope(model), params) list = search_collection(list) unless resource.skip_search? list = sort(list) list = paginate_collection(list) if page_param.present? list end
order()
click to toggle source
# File lib/croods/controller/collection.rb, line 34 def order params[:order].presence end
order_by()
click to toggle source
# File lib/croods/controller/collection.rb, line 30 def order_by params[:order_by].presence end
page_param()
click to toggle source
# File lib/croods/controller/collection.rb, line 8 def page_param params[resource.page_attribute_name] end
paginate_collection(list)
click to toggle source
# File lib/croods/controller/collection.rb, line 16 def paginate_collection(list) paginate(list.send(resource.page_method_name, page_param)) end
search_collection(list)
click to toggle source
# File lib/croods/controller/collection.rb, line 20 def search_collection(list) return list unless search_param.present? if resource.search_block.present? list.instance_exec(search_param, &resource.search_block) else list.public_send resource.search_method_name, search_param end end
search_param()
click to toggle source
# File lib/croods/controller/collection.rb, line 12 def search_param params[resource.search_attribute_name] end
sort(list)
click to toggle source
rubocop:enable Metrics/AbcSize
# File lib/croods/controller/collection.rb, line 52 def sort(list) if resource.sort_by_method? sort_by_method(list) else list.order(resource.sort_by) end end
sort_by_method(list)
click to toggle source
rubocop:disable Metrics/AbcSize
# File lib/croods/controller/collection.rb, line 39 def sort_by_method(list) if order_by && order list.public_send(resource.sort_by, order_by, order) elsif order_by list.public_send(resource.sort_by, order_by) elsif order list.public_send(resource.sort_by, order) else list.public_send(resource.sort_by) end end