Module: Zable::ActiveRecord::ClassMethods

Defined in:
lib/zable/active_record.rb

Defined Under Namespace

Modules: Helpers

Constant Summary collapse

PAGE_DEFAULTS =
{ 'num' => 1, 'size' => 2 }

Instance Method Summary collapse

Instance Method Details

#populate(params = {}) ⇒ Object



24
25
26
27
28
# File 'lib/zable/active_record.rb', line 24

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



19
20
21
22
# File 'lib/zable/active_record.rb', line 19

def scoped_for_paginate(params, scoped_object)
  page = (PAGE_DEFAULTS.merge(params[:page] || {})).stringify_keys
  scoped_object.paginate :page => page['num'], :per_page => page['size']
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