Skip to content

Instantly share code, notes, and snippets.

@acuppy
Created July 21, 2013 04:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save acuppy/6047535 to your computer and use it in GitHub Desktop.
Save acuppy/6047535 to your computer and use it in GitHub Desktop.
Array#paginate: adds pagination functionality using the WillPaginate gem to a Ruby Array
require 'will_paginate'
class Array
def paginate(all = nil, options = {})
options[:page] = (options[:page].to_i == 0) ? 1 : options[:page].to_i
options[:per_page] = (options[:per_page].to_i == 0) ? 30 : options[:per_page].to_i
pagination_array = WillPaginate::Collection.new(options[:page], options[:per_page], self.size)
start_index = pagination_array.offset
end_index = start_index + (options[:per_page] - 1)
array_to_concat = self[start_index..end_index]
array_to_concat.nil? ? [] : pagination_array.concat(array_to_concat)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment