Module: Zable::ActiveRecord::ClassMethods
- Defined in:
- lib/zable/active_record.rb
Defined Under Namespace
Modules: Helpers
Constant Summary collapse
- PAGE_DEFAULTS =
{ 'num' => 1, 'size' => 200 }
Instance Method Summary collapse
- #populate(params = {}) ⇒ Object
- #scoped_for_paginate(params, scoped_object) ⇒ Object
- #scoped_for_search(params, scoped_object) ⇒ Object
- #scoped_for_sort(params, scoped_object) ⇒ Object
Instance Method Details
#populate(params = {}) ⇒ Object
26 27 28 29 30 |
# File 'lib/zable/active_record.rb', line 26 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) ⇒ Object
20 21 22 23 24 |
# File 'lib/zable/active_record.rb', line 20 def scoped_for_paginate(params, scoped_object) page = (PAGE_DEFAULTS.merge(params[:page] || {})).stringify_keys scoped_object = scoped_object.paginate(:page => page['num'], :per_page => page['size']) if scoped_object.respond_to?(:paginate) scoped_object end |
#scoped_for_search(params, scoped_object) ⇒ Object
14 15 16 17 18 |
# File 'lib/zable/active_record.rb', line 14 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
8 9 10 11 12 |
# File 'lib/zable/active_record.rb', line 8 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 |