just_paginate 0.0.4 → 0.0.5

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,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module JustPaginate
3
3
 
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.5"
5
5
 
6
6
  def self.page_value(page)
7
7
  if page.nil?
@@ -13,9 +13,13 @@ module JustPaginate
13
13
 
14
14
  def self.paginate(curr_page, per_page, total_entry_count, &selection_strategy)
15
15
  raise "Pagination just supplies index range, expects a selection strategy" if selection_strategy.nil?
16
- total_page_number = total_entry_count / per_page
16
+
17
17
  entries = yield(index_range(curr_page, per_page, total_entry_count)) || []
18
- return entries, total_page_number
18
+ return entries, total_page_number(total_entry_count, per_page)
19
+ end
20
+
21
+ def self.total_page_number(total_entry_count, per_page)
22
+ total_entry_count / per_page
19
23
  end
20
24
 
21
25
  def self.index_range(curr_page, per_page, total_entry_count)
@@ -27,7 +31,7 @@ module JustPaginate
27
31
  end
28
32
 
29
33
  if end_index>total_entry_count
30
- end_index=(total_entry_count-1)
34
+ end_index = total_entry_count
31
35
  end
32
36
 
33
37
  Range.new(start_index, end_index)
@@ -98,7 +102,7 @@ module JustPaginate
98
102
  current = (total-max_visible)+1
99
103
  end
100
104
 
101
- current.upto(current+(max_visible)).each {|n| labels.push(n.to_s)}
105
+ current.upto(current+(max_visible-1)).each {|n| labels.push(n.to_s)}
102
106
 
103
107
  if (current <= (total-max_visible))
104
108
  labels.concat ["...", "#{total}", ">"]
@@ -26,7 +26,14 @@ class JustPaginateTest < Test::Unit::TestCase
26
26
  JustPaginate.index_range(7,2,4)
27
27
  end
28
28
  end
29
-
29
+
30
+ should "calculate correct total page count" do
31
+ assert_equal 25, JustPaginate.total_page_number(500, 20)
32
+
33
+
34
+ end
35
+
36
+
30
37
  should "correctly apply the supplied selection strategy" do
31
38
  ran = false
32
39
  sliced_entries, page_count = JustPaginate.paginate(1, 5, 10) do |index_range|
@@ -53,7 +60,10 @@ class JustPaginateTest < Test::Unit::TestCase
53
60
  assert_equal 60..79, JustPaginate.index_range(4,20,100)
54
61
  assert_equal 60..79, JustPaginate.index_range(4,20,95)
55
62
  assert_equal 80..99, JustPaginate.index_range(5,20,100)
56
- assert_equal 80..94, JustPaginate.index_range(5,20,95)
63
+ assert_equal 80..95, JustPaginate.index_range(5,20,95)
64
+
65
+ assert_equal 460..479, JustPaginate.index_range(24,20,500)
66
+ assert_equal 480..499, JustPaginate.index_range(25,20,500)
57
67
  end
58
68
  end
59
69
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: just_paginate
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gitorious AS