class WillPaginate::PageNumber
integer representing a page number
def initialize(value, name)
def initialize(value, name) value = Integer(value) if 'offset' == name ? (value < 0 or value > BIGINT) : value < 1 raise RangeError, "invalid #{name}: #{value.inspect}" end @name = name @value = value rescue ArgumentError, TypeError, RangeError => error error.extend InvalidPage raise error end
def inspect
def inspect "#{@name} #{to_i}" end
def kind_of?(klass)
def kind_of?(klass) super || to_i.kind_of?(klass) end
def to_i
def to_i @value end
def to_offset(per_page)
def to_offset(per_page) PageNumber.new((to_i - 1) * per_page.to_i, 'offset') end