objectreload-pagination 0.1.5 → 0.1.6

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
1
+ 0.1.6
data/lib/pagination.rb CHANGED
@@ -9,4 +9,8 @@ require 'pagination/enumerable'
9
9
  require 'pagination/view_helpers'
10
10
 
11
11
  # Loads the :paginate view helper
12
- ActionView::Base.send :include, Pagination::ViewHelpers
12
+ ActionView::Base.send :include, Pagination::ViewHelpers
13
+
14
+ if defined?(ActionController::Base) and ActionController::Base.respond_to? :rescue_responses
15
+ ActionController::Base.rescue_responses['Pagination::InvalidPage'] = :not_found
16
+ end
@@ -1,5 +1,5 @@
1
1
  module Pagination
2
- class InvalidPage < ActiveRecord::RecordNotFound
2
+ class InvalidPage < ArgumentError
3
3
  def initialize(page, max = 1)
4
4
  super "#{page} must be greater than 0" if page < 1
5
5
  super "#{page} must be less than #{max}" if page >= 1
@@ -19,7 +19,7 @@ module Pagination
19
19
  else
20
20
  @current_page = options[:current_page].to_i
21
21
  @per_page = options[:per_page].to_i
22
- self.total_entries ||= @collection.count(:id, :distinct => true)
22
+ self.total_entries ||= @collection.count(:distinct => true, :select => :id)
23
23
  end
24
24
 
25
25
  raise InvalidPage.new(@current_page) if @current_page < 1
@@ -5,7 +5,9 @@ require File.dirname(__FILE__) + '/../lib/pagination/enumerable'
5
5
  class CollectionTest < Test::Unit::TestCase
6
6
  context "collection test" do
7
7
  setup do
8
- @collection = ('a'..'e').to_a
8
+ Article.destroy_all
9
+ 5.times {|i| Article.create!(:id => i, :user => User.create)}
10
+ @collection = Article.all
9
11
  end
10
12
 
11
13
  should "return elements from specific range" do
@@ -13,9 +15,9 @@ class CollectionTest < Test::Unit::TestCase
13
15
  # limit = per_page
14
16
  # offset = (current_page - 1) * limit
15
17
  [
16
- { :offset => 0, :limit => 3, :expected => %w( a b c ) },
17
- { :offset => 3, :limit => 3, :expected => %w( d e ) },
18
- { :offset => 0, :limit => 5, :expected => %w( a b c d e ) },
18
+ { :offset => 0, :limit => 3, :expected => [@collection[0],@collection[1], @collection[2]] },
19
+ { :offset => 3, :limit => 3, :expected => [@collection[3],@collection[4]] },
20
+ { :offset => 0, :limit => 5, :expected => [@collection[0],@collection[1], @collection[2], @collection[3], @collection[4]] },
19
21
  { :offset => 6, :limit => 3, :expected => [] },
20
22
  ].
21
23
  each do |conditions|
@@ -26,7 +28,6 @@ class CollectionTest < Test::Unit::TestCase
26
28
 
27
29
  context "init pagination collection" do
28
30
  setup do
29
- @collection = [1,2,3,4,5]
30
31
  @paginated_collection = paginate_collection(@collection)
31
32
  end
32
33
 
@@ -56,6 +57,10 @@ class CollectionTest < Test::Unit::TestCase
56
57
  should "rise an error ArgumentError" do
57
58
  assert_raise(ArgumentError) { paginate_collection(@collection, 2, -2) }
58
59
  end
60
+
61
+ should "test_rescue_response_hook_presence" do
62
+ assert_equal :not_found, ActionController::Base.rescue_responses['Pagination::InvalidPage']
63
+ end
59
64
  end
60
65
 
61
66
  context "having already paginated collection" do
@@ -43,9 +43,12 @@ class Pagination::ViewTestCase < Test::Unit::TestCase
43
43
 
44
44
  def paginate(collection = {}, options = {}, &block)
45
45
 
46
+ Article.destroy_all
47
+ 11.times {|i| Article.create!(:id => i, :user => User.create)}
48
+
46
49
  if collection.instance_of? Hash
47
50
  @request.params :page => collection[:page] || 1
48
- collection = [1,2,3,4,5,6,7,8,9,10,11]
51
+ collection = Article.all
49
52
  end
50
53
  options = {:per_page => 4, :controls => :top}.merge(options)
51
54
 
@@ -3,6 +3,11 @@ require File.dirname(__FILE__) + '/lib/view_test_process'
3
3
 
4
4
  class ViewHelpersTest < Pagination::ViewTestCase
5
5
  context "paginate method" do
6
+ setup do
7
+ Article.destroy_all
8
+ 5.times {|i| Article.create!(:id => i, :user => User.create)}
9
+ @collection = Article.all
10
+ end
6
11
 
7
12
  should "return full output" do
8
13
  paginate({:page => 1})
@@ -123,7 +128,7 @@ class ViewHelpersTest < Pagination::ViewTestCase
123
128
 
124
129
  # magic ID
125
130
  paginate({}, :id => true) do |div|
126
- assert_equal 'fixnums_pagination', div.first['id']
131
+ assert_equal 'articles_pagination', div.first['id']
127
132
  end
128
133
 
129
134
  # explicit ID
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 5
9
- version: 0.1.5
8
+ - 6
9
+ version: 0.1.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Mateusz Drozdzynski
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-29 00:00:00 +02:00
17
+ date: 2010-07-01 00:00:00 +03:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -79,8 +79,8 @@ signing_key:
79
79
  specification_version: 3
80
80
  summary: Simple pagination - without changes in controllers
81
81
  test_files:
82
+ - test/lib/view_test_process.rb
82
83
  - test/active_record_extentions_test.rb
83
84
  - test/collection_test.rb
84
- - test/lib/view_test_process.rb
85
- - test/test_helper.rb
86
85
  - test/view_helpers_test.rb
86
+ - test/test_helper.rb