seek 0.0.1 → 0.0.2
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/README.md +2 -2
- data/lib/seek.rb +1 -0
- data/lib/seek/pagination.rb +15 -2
- data/lib/seek/version.rb +1 -1
- data/spec/lib/seek_spec.rb +6 -2
- metadata +1 -1
data/README.md
CHANGED
@@ -18,6 +18,7 @@ params = { page: '4', sort_order: 'desc', per_page: '1000' }
|
|
18
18
|
seek = Seek.new params,
|
19
19
|
valid_sort_bys: %w{ first_name, last_name, age },
|
20
20
|
max_per_page: 50,
|
21
|
+
default_per_page: 10,
|
21
22
|
default_sort_by: :age,
|
22
23
|
default_sort_order: :asc
|
23
24
|
|
@@ -27,6 +28,5 @@ seek.sort_by #=> 'age'
|
|
27
28
|
seek.sort_order #=> 'desc
|
28
29
|
seek.order #=> 'age desc'
|
29
30
|
|
30
|
-
seek.to_hash
|
31
|
-
#=> Returns a Hash with all the parameters listed above.
|
31
|
+
seek.to_hash #=> Returns a Hash with all the parameters listed above.
|
32
32
|
```
|
data/lib/seek.rb
CHANGED
@@ -19,6 +19,7 @@ class Seek
|
|
19
19
|
self.sort_order = params[:sort_order]
|
20
20
|
self.max_per_page = options[:max_per_page]
|
21
21
|
self.valid_sort_bys = options[:valid_sort_bys]
|
22
|
+
self.default_per_page = options[:default_per_page]
|
22
23
|
self.default_sort_by = options[:default_sort_by]
|
23
24
|
self.default_sort_order = options[:default_sort_order]
|
24
25
|
end
|
data/lib/seek/pagination.rb
CHANGED
@@ -3,14 +3,19 @@ require 'positify'
|
|
3
3
|
class Seek
|
4
4
|
module Pagination
|
5
5
|
|
6
|
-
attr_writer :page, :per_page, :max_per_page
|
6
|
+
attr_writer :page, :per_page, :max_per_page, :default_per_page
|
7
7
|
|
8
8
|
def page
|
9
9
|
Positify.it @page
|
10
10
|
end
|
11
11
|
|
12
12
|
def per_page
|
13
|
-
|
13
|
+
if @per_page.to_i > 0
|
14
|
+
result = @per_page
|
15
|
+
else
|
16
|
+
result = default_per_page
|
17
|
+
end
|
18
|
+
Positify.it(result, max: max_per_page)
|
14
19
|
end
|
15
20
|
|
16
21
|
def max_per_page
|
@@ -21,5 +26,13 @@ class Seek
|
|
21
26
|
end
|
22
27
|
end
|
23
28
|
|
29
|
+
def default_per_page
|
30
|
+
if @default_per_page.to_i > 0
|
31
|
+
@default_per_page.to_i
|
32
|
+
else
|
33
|
+
self.class.config.default_per_page
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
24
37
|
end
|
25
38
|
end
|
data/lib/seek/version.rb
CHANGED
data/spec/lib/seek_spec.rb
CHANGED
@@ -20,6 +20,10 @@ describe Seek do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
describe '#per_page' do
|
23
|
+
it 'takes the default from the configuration if nothing provided' do
|
24
|
+
Seek.new.per_page.should == 20
|
25
|
+
end
|
26
|
+
|
23
27
|
it 'comes from the params' do
|
24
28
|
seek.per_page.should == 20
|
25
29
|
end
|
@@ -29,9 +33,9 @@ describe Seek do
|
|
29
33
|
seek.per_page.should == 15
|
30
34
|
end
|
31
35
|
|
32
|
-
it '
|
36
|
+
it 'falls back to the default on weird values' do
|
33
37
|
seek = Seek.new params.merge(per_page: 'what?')
|
34
|
-
seek.per_page.should ==
|
38
|
+
seek.per_page.should == 20
|
35
39
|
end
|
36
40
|
end
|
37
41
|
|