module PageNumber
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
Constants
- VERSION
Public Instance Methods
page(n)
click to toggle source
# 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
Also aliased as: __page__
page!(page)
click to toggle source
# 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
Also aliased as: __page__!
per_page(n)
click to toggle source
# 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
Also aliased as: __per_page__
Protected Instance Methods
default_page()
click to toggle source
# File lib/page_number.rb, line 68 def default_page 1 end
default_per_page()
click to toggle source
# File lib/page_number.rb, line 64 def default_per_page 10 end
max_page_number()
click to toggle source
# File lib/page_number.rb, line 72 def max_page_number end
page_sizes()
click to toggle source
# File lib/page_number.rb, line 75 def page_sizes end
Private Instance Methods
__int(n)
click to toggle source
# File lib/page_number.rb, line 80 def __int(n) case when n.respond_to?(:to_i) n.to_i when n.respond_to?(:to_int) n.to_int else -1 end end