17 lines
468 B
Ruby
17 lines
468 B
Ruby
|
require 'will_paginate/collection'
|
||
|
|
||
|
# http://www.desimcadam.com/archives/8
|
||
|
Array.class_eval do
|
||
|
def paginate(options = {})
|
||
|
raise ArgumentError, "parameter hash expected (got #{options.inspect})" unless Hash === options
|
||
|
|
||
|
WillPaginate::Collection.create(
|
||
|
options[:page] || 1,
|
||
|
options[:per_page] || 30,
|
||
|
options[:total_entries] || self.length
|
||
|
) { |pager|
|
||
|
pager.replace self[pager.offset, pager.per_page].to_a
|
||
|
}
|
||
|
end
|
||
|
end
|