simple_record 1.3.4 → 1.3.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.
- data/lib/simple_record.rb +7 -22
- data/lib/simple_record/results_array.rb +56 -3
- metadata +4 -4
data/lib/simple_record.rb
CHANGED
@@ -879,30 +879,15 @@ module SimpleRecord
|
|
879
879
|
def self.paginate(options={})
|
880
880
|
# options = args.pop
|
881
881
|
# puts 'paginate options=' + options.inspect if SimpleRecord.logging?
|
882
|
-
page = options[:page] || 1
|
883
|
-
per_page = options[:per_page] || self.per_page || 50
|
884
|
-
total = options[:total_entries]
|
882
|
+
page = options[:page].to_i || 1
|
883
|
+
per_page = options[:per_page].to_i || self.per_page || 50
|
884
|
+
# total = options[:total_entries].to_i
|
885
|
+
options[:page] = page # makes sure it's to_i
|
886
|
+
options[:per_page] = per_page
|
885
887
|
options[:limit] = page * per_page
|
886
888
|
fr = find(:all, options)
|
887
|
-
|
888
|
-
|
889
|
-
i = 0
|
890
|
-
p = 1
|
891
|
-
fr.each do |x|
|
892
|
-
# puts 'x=' + x.inspect
|
893
|
-
if p == page
|
894
|
-
# puts 'adding'
|
895
|
-
ret << x
|
896
|
-
end
|
897
|
-
i += 1
|
898
|
-
if i > 0 && i % per_page == 0
|
899
|
-
p += 1
|
900
|
-
if p > page
|
901
|
-
break
|
902
|
-
end
|
903
|
-
end
|
904
|
-
end
|
905
|
-
ret
|
889
|
+
return fr
|
890
|
+
|
906
891
|
end
|
907
892
|
|
908
893
|
|
@@ -19,6 +19,11 @@ module SimpleRecord
|
|
19
19
|
@items = items
|
20
20
|
@currentset_items = items
|
21
21
|
@next_token = next_token
|
22
|
+
@options = @params[1]
|
23
|
+
if @options[:page]
|
24
|
+
load_to(@options[:per_page] * @options[:page])
|
25
|
+
@start_at = @options[:per_page] * (@options[:page] - 1)
|
26
|
+
end
|
22
27
|
end
|
23
28
|
|
24
29
|
def << (val)
|
@@ -80,9 +85,10 @@ module SimpleRecord
|
|
80
85
|
return @count if @count
|
81
86
|
params_for_count = params.dup
|
82
87
|
params_for_count[0] = :count
|
83
|
-
|
88
|
+
params_for_count[1].delete(:limit)
|
89
|
+
puts 'params_for_count=' + params_for_count.inspect
|
84
90
|
@count = clz.find(*params_for_count)
|
85
|
-
|
91
|
+
puts '@count=' + @count.to_s
|
86
92
|
@count
|
87
93
|
end
|
88
94
|
|
@@ -91,7 +97,7 @@ module SimpleRecord
|
|
91
97
|
end
|
92
98
|
|
93
99
|
def each(&blk)
|
94
|
-
each2(0, &blk)
|
100
|
+
each2((@start_at || 0), &blk)
|
95
101
|
end
|
96
102
|
|
97
103
|
def each2(i, &blk)
|
@@ -119,6 +125,53 @@ module SimpleRecord
|
|
119
125
|
end
|
120
126
|
end
|
121
127
|
|
128
|
+
# for will_paginate support
|
129
|
+
def total_pages
|
130
|
+
puts 'total_pages'
|
131
|
+
puts @params[1][:per_page].to_s
|
132
|
+
return 1 if @params[1][:per_page].nil?
|
133
|
+
ret = (size / @params[1][:per_page].to_f).ceil
|
134
|
+
puts 'ret=' + ret.to_s
|
135
|
+
ret
|
136
|
+
end
|
137
|
+
|
138
|
+
def current_page
|
139
|
+
return query_options[:page] || 1
|
140
|
+
end
|
141
|
+
|
142
|
+
def query_options
|
143
|
+
return @options
|
144
|
+
end
|
145
|
+
|
146
|
+
def total_entries
|
147
|
+
return size
|
148
|
+
end
|
149
|
+
|
150
|
+
# Helper method that is true when someone tries to fetch a page with a
|
151
|
+
# larger number than the last page. Can be used in combination with flashes
|
152
|
+
# and redirecting.
|
153
|
+
def out_of_bounds?
|
154
|
+
current_page > total_pages
|
155
|
+
end
|
156
|
+
|
157
|
+
# Current offset of the paginated collection. If we're on the first page,
|
158
|
+
# it is always 0. If we're on the 2nd page and there are 30 entries per page,
|
159
|
+
# the offset is 30. This property is useful if you want to render ordinals
|
160
|
+
# side by side with records in the view: simply start with offset + 1.
|
161
|
+
def offset
|
162
|
+
(current_page - 1) * per_page
|
163
|
+
end
|
164
|
+
|
165
|
+
# current_page - 1 or nil if there is no previous page
|
166
|
+
def previous_page
|
167
|
+
current_page > 1 ? (current_page - 1) : nil
|
168
|
+
end
|
169
|
+
|
170
|
+
# current_page + 1 or nil if there is no next page
|
171
|
+
def next_page
|
172
|
+
current_page < total_pages ? (current_page + 1) : nil
|
173
|
+
end
|
174
|
+
|
122
175
|
def load_next_token_set
|
123
176
|
options = @params[1]
|
124
177
|
options[:next_token] = @next_token
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 1.3.
|
9
|
+
- 5
|
10
|
+
version: 1.3.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Travis Reeder
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-
|
20
|
+
date: 2010-06-02 00:00:00 -07:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|