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.
- data/History.txt +5 -0
- data/lib/paginator.rb +15 -1
- data/test/test_paginator.rb +18 -0
- metadata +7 -7
data/History.txt
CHANGED
data/lib/paginator.rb
CHANGED
@@ -2,7 +2,7 @@ require 'forwardable'
|
|
2
2
|
|
3
3
|
class Paginator
|
4
4
|
|
5
|
-
VERSION = '1.0.
|
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
|
data/test/test_paginator.rb
CHANGED
@@ -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.
|
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
|
-
date:
|
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.
|
59
|
+
version: 1.1.6
|
60
60
|
version:
|