simple_pager 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/simple_pager.rb +10 -3
  2. metadata +4 -4
data/lib/simple_pager.rb CHANGED
@@ -6,12 +6,18 @@ module SimplePager
6
6
  # = Simple Paginating for ActiveRecord models
7
7
  #
8
8
  # Adds pager scope to all ActiveRecord models. Works similar to will_paginate but does not count the collection.
9
- # You can't set a universal per_page yet, but you can set it on the model. Defaults to 30.
9
+ # per_page defaults to 30
10
10
  #
11
11
  # @posts = Post.pager(:page => params[:page]).order('created_at DESC')
12
+ # @posts = Post.pager(:page => params[:page], :per_page => 15).order('created_at DESC')
12
13
  module ClassMethods
13
14
  def pager(pp={})
14
- limit(pp[:per_page] || (self.respond_to?(:per_page) ? self.per_page : 30)).
15
+ if pp[:per_page]
16
+ self.per_page = pp[:per_page]
17
+ elsif !self.respond_to?(:per_page) or !self.per_page
18
+ self.per_page = 30
19
+ end
20
+ limit(self.per_page).
15
21
  offset(pp[:page].blank? ? 0 : ((pp[:page].to_i-1)*(pp[:per_page] || (self.respond_to?(:per_page) ? self.per_page : 30))))
16
22
  end
17
23
  end
@@ -29,7 +35,8 @@ module SimplePagerHelper
29
35
  if collection.empty?
30
36
  prefix = content_tag(:p,"There are no more.")
31
37
  end
32
- pprev = content_tag(:li, link_to( "← #{prev_name}".html_safe, request.query_parameters.merge({:page => (params[:page].to_i - 1)}) ),:class => 'previous')
38
+ prevnum = (params[:page].to_i - 1)
39
+ pprev = content_tag(:li, link_to( "← #{prev_name}".html_safe, request.query_parameters.merge({:page => (prevnum == 1 ? nil : prevnum)}) ),:class => 'previous')
33
40
  end
34
41
  if !@no_more_pages and collection.size >= per_page
35
42
  pnext = content_tag(:li, link_to( "#{next_name} →".html_safe, request.query_parameters.merge({:page => (params[:page] ? params[:page].to_i + 1 : 2)}) ),:class => 'next')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_pager
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Peter Gerard
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-05 00:00:00 Z
18
+ date: 2013-03-26 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: Super lightweight and simple Rails 3 pagination for when you don't need to count the number of items or pages. simple_pager shows Previous and More links.