paginator 1.0.7 → 1.0.8

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