paginator 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,8 @@
1
+ == 1.0.8 / 2006-11-02
2
+
3
+ * Added <tt>Page#first_item_number</tt> and <tt>Page#last_item_number</tt>
4
+ * Thanks, Quannon Au!
5
+
1
6
  == 1.0.6 / 2006-11-02
2
7
 
3
8
  * Added each_with_index to Paginator and Page classes
@@ -2,7 +2,7 @@ require 'forwardable'
2
2
 
3
3
  class Paginator
4
4
 
5
- VERSION = '1.0.7'
5
+ VERSION = '1.0.8'
6
6
 
7
7
  class ArgumentError < ::ArgumentError; end
8
8
  class MissingCountError < ArgumentError; end
@@ -83,6 +83,7 @@ class Paginator
83
83
 
84
84
  def initialize(pager, number, select) #:nodoc:
85
85
  @pager, @number = pager, number
86
+ @offset = (number - 1) * pager.per_page
86
87
  @select = select
87
88
  end
88
89
 
@@ -112,6 +113,19 @@ class Paginator
112
113
  @pager.page(@number + 1) if next?
113
114
  end
114
115
 
116
+ #
117
+ def first_item_number
118
+ 1 + @offset
119
+ end
120
+
121
+ def last_item_number
122
+ if next?
123
+ @offset + @pager.per_page
124
+ else
125
+ @pager.count
126
+ end
127
+ end
128
+
115
129
  def ==(other) #:nodoc:
116
130
  @pager == other.pager && self.number == other.number
117
131
  end
@@ -102,6 +102,24 @@ class PaginatorTest < Test::Unit::TestCase
102
102
  pager.page(1).items
103
103
  end
104
104
 
105
+ def test_page_object_knows_first_and_last_item_numbers
106
+ items = (1..11).to_a
107
+ pager = Paginator.new(items.size,3) do |offset, per_page|
108
+ items[offset, per_page]
109
+ end
110
+ page = pager.page(1)
111
+ assert_equal 1, page.first_item_number
112
+ assert_equal 3, page.last_item_number
113
+ page = pager.page(2)
114
+ assert_equal 4, page.first_item_number
115
+ assert_equal 6, page.last_item_number
116
+ page = pager.page(3)
117
+ assert_equal 7, page.first_item_number
118
+ assert_equal 9, page.last_item_number
119
+ page = pager.page(4)
120
+ assert_equal 10, page.first_item_number
121
+ assert_equal 11, page.last_item_number
122
+ end
105
123
 
106
124
 
107
125
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: paginator
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.7
7
- date: 2006-11-29 00:00:00 -07:00
6
+ version: 1.0.8
7
+ date: 2007-01-09 00:00:00 -07:00
8
8
  summary: A generic paginator object for use in any Ruby program
9
9
  require_paths:
10
10
  - lib
11
- - test
12
11
  email: bruce@codefluency.com
13
12
  homepage: http://paginator.rubyforge.org
14
13
  rubyforge_project: paginator
@@ -26,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
26
25
  platform: ruby
27
26
  signing_key:
28
27
  cert_chain:
28
+ post_install_message:
29
29
  authors:
30
30
  - Bruce Williams
31
31
  files:
@@ -36,8 +36,8 @@ files:
36
36
  - bin/paginator
37
37
  - lib/paginator.rb
38
38
  - test/test_paginator.rb
39
- test_files: []
40
-
39
+ test_files:
40
+ - test/test_paginator.rb
41
41
  rdoc_options: []
42
42
 
43
43
  extra_rdoc_files: []
@@ -56,5 +56,5 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.1.2
59
+ version: 1.1.6
60
60
  version: