godfat-pagify 0.5.0 → 0.6.1

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.
Files changed (41) hide show
  1. data/CHANGES +11 -0
  2. data/README +36 -22
  3. data/Rakefile +28 -36
  4. data/TODO +9 -1
  5. data/lib/pagify.rb +7 -2
  6. data/lib/pagify/active_record.rb +3 -5
  7. data/lib/pagify/array.rb +2 -2
  8. data/lib/pagify/data_mapper.rb +3 -11
  9. data/lib/pagify/{helpers → helper}/abstract.rb +39 -19
  10. data/lib/pagify/{helpers/details → helper/detail}/setting.rb +5 -5
  11. data/lib/pagify/{helpers/details → helper/detail}/setup.rb +1 -1
  12. data/lib/pagify/{helpers → helper}/html.rb +10 -9
  13. data/lib/pagify/helper/rails.rb +23 -0
  14. data/lib/pagify/{pages → page}/basic.rb +2 -4
  15. data/lib/pagify/{pages → page}/null.rb +2 -3
  16. data/lib/pagify/{pagers → pager}/active_record.rb +2 -4
  17. data/lib/pagify/{pagers → pager}/array.rb +2 -3
  18. data/lib/pagify/{pagers → pager}/basic.rb +2 -2
  19. data/lib/pagify/{pagers → pager}/data_mapper.rb +2 -3
  20. data/lib/pagify/{pagers/details → pager/detail}/page_accept_string_or_blank.rb +2 -3
  21. data/lib/pagify/{pagers → pager}/null.rb +1 -3
  22. data/lib/pagify/pagifier/abstract.rb +10 -0
  23. data/lib/pagify/{pagifiers → pagifier}/active_record.rb +1 -1
  24. data/lib/pagify/{pagifiers → pagifier}/array.rb +1 -1
  25. data/lib/pagify/{pagifiers → pagifier}/data_mapper.rb +2 -2
  26. data/lib/pagify/version.rb +1 -1
  27. data/pagify.gemspec +19 -27
  28. data/test/helper.rb +14 -2
  29. data/test/{suite_for_model.rb → helper_model.rb} +1 -43
  30. data/test/{test_pagify.rb → helper_pagify.rb} +1 -3
  31. data/test/test_active_record.rb +9 -14
  32. data/test/test_array.rb +1 -1
  33. data/test/test_basic.rb +1 -1
  34. data/test/test_data_mapper.rb +3 -2
  35. data/test/test_html.rb +33 -7
  36. data/test/test_null.rb +19 -10
  37. data/test/test_rails.rb +32 -0
  38. metadata +39 -66
  39. data/lib/pagify/basic.rb +0 -3
  40. data/lib/pagify/null.rb +0 -5
  41. data/lib/pagify/pagifiers/abstract.rb +0 -34
data/test/test_null.rb CHANGED
@@ -1,22 +1,31 @@
1
1
 
2
2
  require 'test/helper'
3
3
 
4
- class TestNull < MiniTest::Unit::TestCase
4
+ class TestNull < TestCase
5
5
  def test_null_pager
6
- nullpage = Pagify::NullPager.instance.page(0)
7
- assert_equal 0, nullpage.page
8
- assert_equal nullpage.object_id, nullpage.next.object_id
9
- assert_equal 0, nullpage.size
10
- assert_equal [], nullpage.data
11
- assert_equal nullpage.object_id, nullpage.pager.page(0).object_id
6
+ null = Pagify::NullPager.instance.page(0)
7
+ for_null_page(null)
12
8
 
13
- assert_equal nullpage.object_id, Pagify::NullPager.instance.page(1).object_id
14
- assert_equal nullpage.pager.object_id, Pagify::NullPage.new.pager.object_id
9
+ assert_equal(null.object_id, Pagify::NullPager.instance.page(1).object_id)
10
+ assert_equal(null.pager.object_id, Pagify::NullPage.new.pager.object_id)
15
11
 
16
12
  dummy_pager = Pagify::BasicPager.new(:null_page => true,
17
13
  :fetcher => lambda{|*a|[]}, :counter => lambda{0})
18
14
 
19
- assert_equal Pagify::NullPage.new(dummy_pager), dummy_pager.page(1)
15
+ assert_equal(Pagify::NullPage.new(dummy_pager), dummy_pager.page(1))
16
+ end
17
+
18
+ def test_null_page_from_array_pager
19
+ for_null_page(Pagify::ArrayPager.new([]).page(2))
20
+ end
21
+
22
+ def for_null_page null
23
+ assert_equal(0, null.page)
24
+ assert_equal(null.object_id, null.next.object_id)
25
+ assert_equal(0, null.size)
26
+ assert_equal([], null.data)
27
+ assert_equal(null.object_id, null.pager.page(0).object_id)
28
+ assert_equal(true, null.empty?)
20
29
  end
21
30
 
22
31
  end
@@ -0,0 +1,32 @@
1
+
2
+ require 'test/helper'
3
+ require 'pagify/array'
4
+ require 'pagify/helper/rails'
5
+
6
+ class TestRails < TestCase
7
+ include ApplicationHelper
8
+ # fake
9
+ def request
10
+ Struct.new(:path).new('/a/b')
11
+ end
12
+ def params
13
+ {:page => 3}
14
+ end
15
+
16
+ def setup
17
+ @data = (0..9).to_a.pagify(:per_page => 2, :page => 3)
18
+ end
19
+
20
+ def test_query_name
21
+ assert_equal(:page, Pagify::Helper::HTML.setting[:query_name])
22
+ assert_equal(:page, Pagify::ArrayPager.new([]).html.setting[:query_name])
23
+ end
24
+
25
+ def test_would_paginate
26
+ assert_equal('<div class="pagination"><a href="/a/b?page=2">&lt; Previous</a> <a href="/a/b?page=4">Next &gt;</a><br /><a href="/a/b?page=1">&laquo; First</a> <a href="/a/b?page=2">2</a> 3 <a href="/a/b?page=4">4</a> <a href="/a/b?page=5">Last &raquo;</a></div>', would_paginate(@data))
27
+ end
28
+
29
+ def test_custom_path
30
+ assert_equal('<div class="pagination"><a href="XD?page=2">&lt; Previous</a> <a href="XD?page=4">Next &gt;</a><br /><a href="XD?page=1">&laquo; First</a> <a href="XD?page=2">2</a> 3 <a href="XD?page=4">4</a> <a href="XD?page=5">Last &raquo;</a></div>', would_paginate(@data){'XD'})
31
+ end
32
+ end
metadata CHANGED
@@ -1,55 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: godfat-pagify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
- - "Lin Jen-Shin (a.k.a. godfat \xE7\x9C\x9F\xE5\xB8\xB8)"
7
+ - "Lin Jen-Shin (aka godfat \xE7\x9C\x9F\xE5\xB8\xB8)"
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-11 00:00:00 -08:00
12
+ date: 2009-07-30 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bones
17
+ type: :development
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - ">="
21
22
  - !ruby/object:Gem::Version
22
- version: 2.1.0
23
- version:
24
- - !ruby/object:Gem::Dependency
25
- name: extlib
26
- version_requirement:
27
- version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - <=
30
- - !ruby/object:Gem::Version
31
- version: 0.9.8
23
+ version: 2.5.1
32
24
  version:
33
25
  - !ruby/object:Gem::Dependency
34
26
  name: dm-core
27
+ type: :development
35
28
  version_requirement:
36
29
  version_requirements: !ruby/object:Gem::Requirement
37
30
  requirements:
38
- - - <=
31
+ - - ">="
39
32
  - !ruby/object:Gem::Version
40
- version: 0.9.7
33
+ version: 0.9.9
41
34
  version:
42
35
  - !ruby/object:Gem::Dependency
43
36
  name: dm-aggregates
37
+ type: :development
44
38
  version_requirement:
45
39
  version_requirements: !ruby/object:Gem::Requirement
46
40
  requirements:
47
- - - <=
41
+ - - ">="
48
42
  - !ruby/object:Gem::Version
49
- version: 0.9.7
43
+ version: 0.9.9
50
44
  version:
51
45
  - !ruby/object:Gem::Dependency
52
46
  name: activerecord
47
+ type: :development
53
48
  version_requirement:
54
49
  version_requirements: !ruby/object:Gem::Requirement
55
50
  requirements:
@@ -57,16 +52,7 @@ dependencies:
57
52
  - !ruby/object:Gem::Version
58
53
  version: 2.0.0
59
54
  version:
60
- - !ruby/object:Gem::Dependency
61
- name: minitest
62
- version_requirement:
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 1.3.0
68
- version:
69
- description: pagination tools for plain Ruby, DataMapper, ActiveRecord, and other ORM.
55
+ description: Pagination tools for Array(or custom class), DataMapper and ActiveRecord
70
56
  email: godfat (XD) godfat.org
71
57
  executables: []
72
58
 
@@ -89,56 +75,43 @@ files:
89
75
  - lib/pagify.rb
90
76
  - lib/pagify/active_record.rb
91
77
  - lib/pagify/array.rb
92
- - lib/pagify/basic.rb
93
78
  - lib/pagify/data_mapper.rb
94
- - lib/pagify/helpers/abstract.rb
95
- - lib/pagify/helpers/details/setting.rb
96
- - lib/pagify/helpers/details/setup.rb
97
- - lib/pagify/helpers/html.rb
98
- - lib/pagify/null.rb
99
- - lib/pagify/pagers/active_record.rb
100
- - lib/pagify/pagers/array.rb
101
- - lib/pagify/pagers/basic.rb
102
- - lib/pagify/pagers/data_mapper.rb
103
- - lib/pagify/pagers/details/page_accept_string_or_blank.rb
104
- - lib/pagify/pagers/null.rb
105
- - lib/pagify/pages/basic.rb
106
- - lib/pagify/pages/null.rb
107
- - lib/pagify/pagifiers/abstract.rb
108
- - lib/pagify/pagifiers/active_record.rb
109
- - lib/pagify/pagifiers/array.rb
110
- - lib/pagify/pagifiers/data_mapper.rb
79
+ - lib/pagify/helper/abstract.rb
80
+ - lib/pagify/helper/detail/setting.rb
81
+ - lib/pagify/helper/detail/setup.rb
82
+ - lib/pagify/helper/html.rb
83
+ - lib/pagify/helper/rails.rb
84
+ - lib/pagify/page/basic.rb
85
+ - lib/pagify/page/null.rb
86
+ - lib/pagify/pager/active_record.rb
87
+ - lib/pagify/pager/array.rb
88
+ - lib/pagify/pager/basic.rb
89
+ - lib/pagify/pager/data_mapper.rb
90
+ - lib/pagify/pager/detail/page_accept_string_or_blank.rb
91
+ - lib/pagify/pager/null.rb
92
+ - lib/pagify/pagifier/abstract.rb
93
+ - lib/pagify/pagifier/active_record.rb
94
+ - lib/pagify/pagifier/array.rb
95
+ - lib/pagify/pagifier/data_mapper.rb
111
96
  - lib/pagify/version.rb
112
97
  - pagify.gemspec
113
98
  - spec/pagify_spec.rb
114
99
  - spec/spec_helper.rb
115
- - tasks/ann.rake
116
- - tasks/bones.rake
117
- - tasks/gem.rake
118
- - tasks/git.rake
119
- - tasks/manifest.rake
120
- - tasks/notes.rake
121
- - tasks/post_load.rake
122
- - tasks/rdoc.rake
123
- - tasks/rubyforge.rake
124
- - tasks/setup.rb
125
- - tasks/spec.rake
126
- - tasks/svn.rake
127
- - tasks/test.rake
128
100
  - test/helper.rb
129
- - test/suite_for_model.rb
101
+ - test/helper_model.rb
102
+ - test/helper_pagify.rb
130
103
  - test/test_active_record.rb
131
104
  - test/test_array.rb
132
105
  - test/test_basic.rb
133
106
  - test/test_data_mapper.rb
134
107
  - test/test_html.rb
135
108
  - test/test_null.rb
136
- - test/test_pagify.rb
137
- has_rdoc: true
109
+ - test/test_rails.rb
110
+ has_rdoc: false
138
111
  homepage: http://github.com/godfat/pagify
112
+ licenses:
139
113
  post_install_message:
140
114
  rdoc_options:
141
- - --diagram
142
115
  - --charset=utf-8
143
116
  - --inline-source
144
117
  - --line-numbers
@@ -162,10 +135,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
135
  requirements: []
163
136
 
164
137
  rubyforge_project: ludy
165
- rubygems_version: 1.2.0
138
+ rubygems_version: 1.3.5
166
139
  signing_key:
167
- specification_version: 2
168
- summary: pagination tools for plain Ruby, DataMapper, ActiveRecord, and other ORM.
140
+ specification_version: 3
141
+ summary: Pagination tools for Array(or custom class), DataMapper and ActiveRecord
169
142
  test_files:
170
143
  - test/test_active_record.rb
171
144
  - test/test_array.rb
@@ -173,4 +146,4 @@ test_files:
173
146
  - test/test_data_mapper.rb
174
147
  - test/test_html.rb
175
148
  - test/test_null.rb
176
- - test/test_pagify.rb
149
+ - test/test_rails.rb
data/lib/pagify/basic.rb DELETED
@@ -1,3 +0,0 @@
1
-
2
- require 'pagify/pagers/basic'
3
- require 'pagify/pages/basic'
data/lib/pagify/null.rb DELETED
@@ -1,5 +0,0 @@
1
-
2
- require 'singleton'
3
-
4
- require 'pagify/pagers/null'
5
- require 'pagify/pages/null'
@@ -1,34 +0,0 @@
1
-
2
- module Pagify
3
- module Pagifier
4
-
5
- attr_reader :pagify_pager
6
-
7
- def pagify_cache
8
- @pagify_cache ||= false
9
- end
10
-
11
- # cleanup cache if turn off cache
12
- # NOTE: you would face thread-safety problem if you turn on cache
13
- def pagify_cache= bool
14
- @pagify_pager = nil unless bool
15
- @pagify_cache = bool
16
- end
17
-
18
- def pagify opts = {}
19
- opts = {:per_page => 20, :null_page => false, :page => 1}.merge(opts)
20
- page = opts.delete(:page)
21
-
22
- pager = if pagify_cache
23
- @pagify_pager ||= pagify_pager_create(self, opts)
24
- pagify_pager.opts = opts
25
- pagify_pager
26
- else
27
- pagify_pager_create(self, opts)
28
- end
29
-
30
- pager.page(page)
31
- end
32
-
33
- end
34
- end