Module: Avarteq::Paginator::ClassMethods
- Defined in:
- lib/acts_as_paginable.rb
Instance Method Summary collapse
-
#acts_as_paginable(options = {}) ⇒ Object
options[:scopes]-
List with paginable scopes.
-
#atq_paginate(params, per_page) ⇒ Object
Chains scopes as given by params and returns the paginated result.
-
#chain_scopes(params, per_page) ⇒ Object
Chains scopes as given by params but does not invoke paginate.
Instance Method Details
#acts_as_paginable(options = {}) ⇒ Object
options[:scopes]-
List with paginable scopes
14 15 16 17 18 19 20 21 22 |
# File 'lib/acts_as_paginable.rb', line 14 def acts_as_paginable( = {}) # Accessors for class (static) variables cattr_accessor :paginable_scopes, :paginable_scope_prefix, :paginable_params_suffix self.paginable_scopes = [:scopes] || [] self.paginable_scope_prefix = [:scope_prefix] || "scoped_by_" self.paginable_params_suffix = [:params_suffix] || "" end |
#atq_paginate(params, per_page) ⇒ Object
Chains scopes as given by params and returns the paginated result.
25 26 27 28 |
# File 'lib/acts_as_paginable.rb', line 25 def atq_paginate(params, per_page) result = chain_scopes(params, per_page) result.paginate(:page => params[:page], :per_page => per_page) end |
#chain_scopes(params, per_page) ⇒ Object
Chains scopes as given by params but does not invoke paginate.
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/acts_as_paginable.rb', line 31 def chain_scopes(params, per_page) result = self self.paginable_scopes.each do |scope_name| param_name = scope_name.to_s + self.paginable_params_suffix.to_s if params[param_name] && !params[param_name].empty? then args = params[param_name] scope = (self.paginable_scope_prefix + scope_name.to_s ).to_sym result = result.send(scope, args) end end result = result.order(params[:order]) if params[:order] && !params[:order].empty? result end |