paginator 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|