From ed576a88cef8e46241572f46e1edd07559aaacc0 Mon Sep 17 00:00:00 2001 From: rick Date: Mon, 2 Aug 2010 11:32:54 -0700 Subject: [PATCH] tomdoc'd --- lib/gollum/pagination.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/gollum/pagination.rb b/lib/gollum/pagination.rb index 8c274142..b8fb518f 100644 --- a/lib/gollum/pagination.rb +++ b/lib/gollum/pagination.rb @@ -3,16 +3,31 @@ module Gollum def self.included(klass) klass.extend ClassMethods class << klass + # Default Integer max count of items to return in git commands. attr_accessor :per_page end klass.per_page = 30 end module ClassMethods + # Turns a page number into an offset number for the git skip option. + # + # page - Integer page number. + # + # Returns an Integer. def page_to_skip(page) ([1, page.to_i].max - 1) * per_page end + # Fills in git-specific options for the log command using simple + # pagination options. + # + # options - Hash of options: + # page - Optional Integer page number (default: 1) + # per_page - Optional Integer max count of items to return. + # Defaults to #per_class class method. + # + # Returns Hash with :max_count and :skip keys. def log_pagination_options(options = {}) skip = page_to_skip(options.delete(:page)) options[:max_count] = [options.delete(:per_page).to_i, per_page].max @@ -21,10 +36,24 @@ module Gollum end end + # Turns a page number into an offset number for the git skip option. + # + # page - Integer page number. + # + # Returns an Integer. def page_to_skip(page) self.class.page_to_skip(page) end + # Fills in git-specific options for the log command using simple + # pagination options. + # + # options - Hash of options: + # page - Optional Integer page number (default: 1) + # per_page - Optional Integer max count of items to return. + # Defaults to #per_class class method. + # + # Returns Hash with :max_count and :skip keys. def log_pagination_options(options = {}) self.class.log_pagination_options(options) end