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.
- data/CHANGES +11 -0
- data/README +36 -22
- data/Rakefile +28 -36
- data/TODO +9 -1
- data/lib/pagify.rb +7 -2
- data/lib/pagify/active_record.rb +3 -5
- data/lib/pagify/array.rb +2 -2
- data/lib/pagify/data_mapper.rb +3 -11
- data/lib/pagify/{helpers → helper}/abstract.rb +39 -19
- data/lib/pagify/{helpers/details → helper/detail}/setting.rb +5 -5
- data/lib/pagify/{helpers/details → helper/detail}/setup.rb +1 -1
- data/lib/pagify/{helpers → helper}/html.rb +10 -9
- data/lib/pagify/helper/rails.rb +23 -0
- data/lib/pagify/{pages → page}/basic.rb +2 -4
- data/lib/pagify/{pages → page}/null.rb +2 -3
- data/lib/pagify/{pagers → pager}/active_record.rb +2 -4
- data/lib/pagify/{pagers → pager}/array.rb +2 -3
- data/lib/pagify/{pagers → pager}/basic.rb +2 -2
- data/lib/pagify/{pagers → pager}/data_mapper.rb +2 -3
- data/lib/pagify/{pagers/details → pager/detail}/page_accept_string_or_blank.rb +2 -3
- data/lib/pagify/{pagers → pager}/null.rb +1 -3
- data/lib/pagify/pagifier/abstract.rb +10 -0
- data/lib/pagify/{pagifiers → pagifier}/active_record.rb +1 -1
- data/lib/pagify/{pagifiers → pagifier}/array.rb +1 -1
- data/lib/pagify/{pagifiers → pagifier}/data_mapper.rb +2 -2
- data/lib/pagify/version.rb +1 -1
- data/pagify.gemspec +19 -27
- data/test/helper.rb +14 -2
- data/test/{suite_for_model.rb → helper_model.rb} +1 -43
- data/test/{test_pagify.rb → helper_pagify.rb} +1 -3
- data/test/test_active_record.rb +9 -14
- data/test/test_array.rb +1 -1
- data/test/test_basic.rb +1 -1
- data/test/test_data_mapper.rb +3 -2
- data/test/test_html.rb +33 -7
- data/test/test_null.rb +19 -10
- data/test/test_rails.rb +32 -0
- metadata +39 -66
- data/lib/pagify/basic.rb +0 -3
- data/lib/pagify/null.rb +0 -5
- 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 <
|
4
|
+
class TestNull < TestCase
|
5
5
|
def test_null_pager
|
6
|
-
|
7
|
-
|
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
|
14
|
-
assert_equal
|
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
|
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
|
data/test/test_rails.rb
ADDED
@@ -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">< Previous</a> <a href="/a/b?page=4">Next ></a><br /><a href="/a/b?page=1">« 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 »</a></div>', would_paginate(@data))
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_custom_path
|
30
|
+
assert_equal('<div class="pagination"><a href="XD?page=2">< Previous</a> <a href="XD?page=4">Next ></a><br /><a href="XD?page=1">« First</a> <a href="XD?page=2">2</a> 3 <a href="XD?page=4">4</a> <a href="XD?page=5">Last »</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.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- "Lin Jen-Shin (
|
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:
|
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
|
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.
|
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.
|
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
|
-
|
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/
|
95
|
-
- lib/pagify/
|
96
|
-
- lib/pagify/
|
97
|
-
- lib/pagify/
|
98
|
-
- lib/pagify/
|
99
|
-
- lib/pagify/
|
100
|
-
- lib/pagify/
|
101
|
-
- lib/pagify/
|
102
|
-
- lib/pagify/
|
103
|
-
- lib/pagify/
|
104
|
-
- lib/pagify/
|
105
|
-
- lib/pagify/
|
106
|
-
- lib/pagify/
|
107
|
-
- lib/pagify/
|
108
|
-
- lib/pagify/
|
109
|
-
- lib/pagify/
|
110
|
-
- lib/pagify/
|
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/
|
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/
|
137
|
-
has_rdoc:
|
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.
|
138
|
+
rubygems_version: 1.3.5
|
166
139
|
signing_key:
|
167
|
-
specification_version:
|
168
|
-
summary:
|
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/
|
149
|
+
- test/test_rails.rb
|
data/lib/pagify/basic.rb
DELETED
data/lib/pagify/null.rb
DELETED
@@ -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
|