Module: PageNumber

Defined in:
lib/page_number.rb

Overview

Usage

require "page_number"

class BaseController
  include PageNumber

  protected

  def page_sizes
    [ 25, 50, 100 ]
  end
end

class SubController < BaseController
  def action
    User.all(:page => page(params[:page]), :per_page => per_page(params[:per_page]))
  end
end

Defined Under Namespace

Classes: PageInvalid

Constant Summary collapse

VERSION =
"0.2.0".freeze

Instance Method Summary collapse

Instance Method Details

#page(n) ⇒ Object Also known as: __page__



44
45
46
47
48
49
# File 'lib/page_number.rb', line 44

def page(n)
  n = __int(n)
  return default_page if n < 1

  max_page_number && n > max_page_number ? max_page_number : n
end

#page!(page) ⇒ Object Also known as: __page__!

Raises:



34
35
36
37
38
39
40
# File 'lib/page_number.rb', line 34

def page!(page)
  n = __int(page)
  raise PageInvalid.new("page must be > 0", page) if n < 1
  raise PageInvalid.new("page must be <= #{max_page_number}", page) if max_page_number && n > max_page_number

  n
end

#per_page(n) ⇒ Object Also known as: __per_page__



53
54
55
56
57
58
# File 'lib/page_number.rb', line 53

def per_page(n)
  n = __int(n)
  return default_per_page if n < 1

  page_sizes && !page_sizes.include?(n) ? default_per_page : n
end