Module: Zable::ActiveRecord::ClassMethods
- Defined in:
- lib/zable/active_record.rb
Defined Under Namespace
Modules: Helpers
Instance Method Summary collapse
- #populate(params = {}, options = {}) ⇒ Object
- #scoped_for_paginate(params, scoped_object, options) ⇒ Object
- #scoped_for_search(params, scoped_object) ⇒ Object
- #scoped_for_sort(params, scoped_object) ⇒ Object
Instance Method Details
#populate(params = {}, options = {}) ⇒ Object
33 34 35 36 37 |
# File 'lib/zable/active_record.rb', line 33 def populate(params={}, = {}) obj = scoped_for_sort(params, self) obj = scoped_for_search(params, obj) scoped_for_paginate(params, obj, ) end |
#scoped_for_paginate(params, scoped_object, options) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/zable/active_record.rb', line 19 def scoped_for_paginate(params, scoped_object, ) page_params = (params[:page] || {}).stringify_keys if scoped_object.respond_to?(:paginate) paginate_opts = {} paginate_opts[:page] = page_params['num'] || 1 # params take preference over option, so that we may change page size on the frontend page_size = page_params['size'] || [:per_page] page_size = 99999999 if page_size == 'all' paginate_opts[:per_page] = page_size if page_size.present? scoped_object = scoped_object.paginate(paginate_opts) end scoped_object end |
#scoped_for_search(params, scoped_object) ⇒ Object
13 14 15 16 17 |
# File 'lib/zable/active_record.rb', line 13 def scoped_for_search(params, scoped_object) hash = (params[:search] || {}).stringify_keys scoped_object = scoped_object.for_search_params(hash) unless hash.empty? scoped_object end |
#scoped_for_sort(params, scoped_object) ⇒ Object
7 8 9 10 11 |
# File 'lib/zable/active_record.rb', line 7 def scoped_for_sort(params, scoped_object) hash = (params[:sort] || {}).stringify_keys scoped_object = scoped_object.for_sort_params(hash) unless hash.empty? scoped_object end |