queryko 1.0.1 → 1.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +3 -1
- data/README.md +15 -0
- data/lib/queryko/query_object.rb +25 -5
- data/lib/queryko/version.rb +1 -1
- data/queryko.gemspec +2 -2
- data/test.html +571 -0
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b6fc3082f0af793f3662b64c9d8adb44011876052d3ad668df7ac6c3e091022
|
4
|
+
data.tar.gz: 46c52021042f4ee7fa94c414e7bc46ff8d864db23d22a59f75bf52a54f292f0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c07e549329d0a33b30c35d331571ab02c81b88b7f87a7a7056ac6b39154cfe707ae552ed054c9287908ed2010b6b1142997840012f3c8eac69a7f77f5345e87
|
7
|
+
data.tar.gz: 87f949beb23627b5c1cda6d220269bb674234b589d7d61886e04b8f8ee095e923ede7b0a069340da87edc4272857063f2f194f0be24569c7632e0485db0cb156
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
queryko (1.0.
|
4
|
+
queryko (1.0.2)
|
5
5
|
activerecord (>= 4.0)
|
6
6
|
activesupport
|
7
7
|
|
@@ -75,6 +75,7 @@ GEM
|
|
75
75
|
thread_safe (0.3.6)
|
76
76
|
tzinfo (1.2.5)
|
77
77
|
thread_safe (~> 0.1)
|
78
|
+
will_paginate (3.1.6)
|
78
79
|
|
79
80
|
PLATFORMS
|
80
81
|
ruby
|
@@ -86,6 +87,7 @@ DEPENDENCIES
|
|
86
87
|
rake (~> 10.0)
|
87
88
|
rspec (~> 3.0)
|
88
89
|
sqlite3
|
90
|
+
will_paginate (~> 3.1.0)
|
89
91
|
|
90
92
|
BUNDLED WITH
|
91
93
|
1.17.1
|
data/README.md
CHANGED
@@ -36,6 +36,21 @@ As long as you defined it in your query object definition.
|
|
36
36
|
``` ruby
|
37
37
|
products = ProductsQuery.new(price_min: 100, price_max: 150, name: 'Milk').call
|
38
38
|
```
|
39
|
+
|
40
|
+
#### Object Methods
|
41
|
+
- **count** - Returns the filtered count including pagination filter or the size of return object.
|
42
|
+
- **total_count** - Returns the overall count of the filtered total records.
|
43
|
+
|
44
|
+
Example:
|
45
|
+
|
46
|
+
```
|
47
|
+
Products.count # 21 rows
|
48
|
+
query = ProductsQuery.new(page: 5, limit: 5)
|
49
|
+
|
50
|
+
query.count # 1
|
51
|
+
query.total_count # 21
|
52
|
+
```
|
53
|
+
|
39
54
|
### Other available options
|
40
55
|
| Option | description |
|
41
56
|
|:---------|:-----------------------------|
|
data/lib/queryko/query_object.rb
CHANGED
@@ -4,26 +4,41 @@ require "queryko/searchables"
|
|
4
4
|
require "queryko/after_attributes"
|
5
5
|
module Queryko
|
6
6
|
class QueryObject
|
7
|
+
attr_reader :countable_resource
|
7
8
|
include Queryko::RangeAttributes
|
8
9
|
include Queryko::Searchables
|
9
10
|
# include AfterAttributes
|
10
11
|
|
11
12
|
def initialize(params = {}, rel)
|
12
|
-
@relation = rel
|
13
|
+
@relation = @original_relation = rel
|
13
14
|
@params = params
|
14
15
|
end
|
15
16
|
|
16
17
|
def call
|
18
|
+
perform
|
19
|
+
self.relation = paginate if config[:paginate]
|
20
|
+
return relation
|
21
|
+
end
|
22
|
+
|
23
|
+
def perform
|
24
|
+
return if @performed
|
25
|
+
|
26
|
+
@performed = true
|
17
27
|
pre_filter
|
18
28
|
filter
|
19
29
|
filter_by_range_attributes
|
20
30
|
filter_by_searchables
|
21
|
-
|
31
|
+
@countable_resource = relation
|
22
32
|
end
|
23
33
|
|
24
34
|
|
35
|
+
def total_count
|
36
|
+
perform
|
37
|
+
countable_resource.count
|
38
|
+
end
|
39
|
+
|
25
40
|
def count
|
26
|
-
call.count
|
41
|
+
call.to_a.count
|
27
42
|
end
|
28
43
|
|
29
44
|
private
|
@@ -40,7 +55,6 @@ module Queryko
|
|
40
55
|
end
|
41
56
|
|
42
57
|
def pre_filter
|
43
|
-
self.relation = paginate if config[:paginate]
|
44
58
|
self.relation = by_ids if config[:ids] && params[:ids]
|
45
59
|
self.relation = since_id if config[:since_id] && params[:since_id]
|
46
60
|
end
|
@@ -49,7 +63,13 @@ module Queryko
|
|
49
63
|
end
|
50
64
|
|
51
65
|
def paginate
|
52
|
-
|
66
|
+
if defined?(WillPaginate)
|
67
|
+
relation.paginate(page: page, per_page: limit)
|
68
|
+
elsif defined?(Kaminari)
|
69
|
+
relation.page(page).per(limit)
|
70
|
+
else
|
71
|
+
raise 'Only kaminari and wil_paginate are supported'
|
72
|
+
end
|
53
73
|
end
|
54
74
|
|
55
75
|
def page
|
data/lib/queryko/version.rb
CHANGED
data/queryko.gemspec
CHANGED
@@ -33,12 +33,12 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.require_paths = ["lib"]
|
34
34
|
|
35
35
|
spec.add_dependency 'activerecord', '>= 4.0'
|
36
|
+
spec.add_dependency "activesupport"
|
36
37
|
|
37
38
|
spec.add_development_dependency "bundler", "~> 1.16"
|
38
39
|
spec.add_development_dependency "rake", "~> 10.0"
|
39
40
|
spec.add_development_dependency "rspec", "~> 3.0"
|
40
41
|
spec.add_development_dependency 'sqlite3'
|
41
42
|
spec.add_development_dependency 'kaminari'
|
42
|
-
|
43
|
-
spec.add_dependency "activesupport"
|
43
|
+
spec.add_development_dependency 'will_paginate', '~> 3.1.0'
|
44
44
|
end
|
data/test.html
ADDED
@@ -0,0 +1,571 @@
|
|
1
|
+
== 1 CreateProducts: migrating ================================================
|
2
|
+
-- adapter_name()
|
3
|
+
-> 0.0000s
|
4
|
+
-- create_table(:products, {})
|
5
|
+
-> 0.0003s
|
6
|
+
== 1 CreateProducts: migrated (0.0004s) =======================================
|
7
|
+
|
8
|
+
<!DOCTYPE html>
|
9
|
+
<html lang='en'>
|
10
|
+
<head>
|
11
|
+
<title>RSpec results</title>
|
12
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
13
|
+
<meta http-equiv="Expires" content="-1" />
|
14
|
+
<meta http-equiv="Pragma" content="no-cache" />
|
15
|
+
<style type="text/css">
|
16
|
+
body {
|
17
|
+
margin: 0;
|
18
|
+
padding: 0;
|
19
|
+
background: #fff;
|
20
|
+
font-size: 80%;
|
21
|
+
}
|
22
|
+
</style>
|
23
|
+
<script type="text/javascript">
|
24
|
+
// <![CDATA[
|
25
|
+
|
26
|
+
function addClass(element_id, classname) {
|
27
|
+
document.getElementById(element_id).className += (" " + classname);
|
28
|
+
}
|
29
|
+
|
30
|
+
function removeClass(element_id, classname) {
|
31
|
+
var elem = document.getElementById(element_id);
|
32
|
+
var classlist = elem.className.replace(classname,'');
|
33
|
+
elem.className = classlist;
|
34
|
+
}
|
35
|
+
|
36
|
+
function moveProgressBar(percentDone) {
|
37
|
+
document.getElementById("rspec-header").style.width = percentDone +"%";
|
38
|
+
}
|
39
|
+
|
40
|
+
function makeRed(element_id) {
|
41
|
+
removeClass(element_id, 'passed');
|
42
|
+
removeClass(element_id, 'not_implemented');
|
43
|
+
addClass(element_id,'failed');
|
44
|
+
}
|
45
|
+
|
46
|
+
function makeYellow(element_id) {
|
47
|
+
var elem = document.getElementById(element_id);
|
48
|
+
if (elem.className.indexOf("failed") == -1) { // class doesn't includes failed
|
49
|
+
if (elem.className.indexOf("not_implemented") == -1) { // class doesn't include not_implemented
|
50
|
+
removeClass(element_id, 'passed');
|
51
|
+
addClass(element_id,'not_implemented');
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
function apply_filters() {
|
57
|
+
var passed_filter = document.getElementById('passed_checkbox').checked;
|
58
|
+
var failed_filter = document.getElementById('failed_checkbox').checked;
|
59
|
+
var pending_filter = document.getElementById('pending_checkbox').checked;
|
60
|
+
|
61
|
+
assign_display_style("example passed", passed_filter);
|
62
|
+
assign_display_style("example failed", failed_filter);
|
63
|
+
assign_display_style("example not_implemented", pending_filter);
|
64
|
+
|
65
|
+
assign_display_style_for_group("example_group passed", passed_filter);
|
66
|
+
assign_display_style_for_group("example_group not_implemented", pending_filter, pending_filter || passed_filter);
|
67
|
+
assign_display_style_for_group("example_group failed", failed_filter, failed_filter || pending_filter || passed_filter);
|
68
|
+
}
|
69
|
+
|
70
|
+
function get_display_style(display_flag) {
|
71
|
+
var style_mode = 'none';
|
72
|
+
if (display_flag == true) {
|
73
|
+
style_mode = 'block';
|
74
|
+
}
|
75
|
+
return style_mode;
|
76
|
+
}
|
77
|
+
|
78
|
+
function assign_display_style(classname, display_flag) {
|
79
|
+
var style_mode = get_display_style(display_flag);
|
80
|
+
var elems = document.getElementsByClassName(classname)
|
81
|
+
for (var i=0; i<elems.length;i++) {
|
82
|
+
elems[i].style.display = style_mode;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
function assign_display_style_for_group(classname, display_flag, subgroup_flag) {
|
87
|
+
var display_style_mode = get_display_style(display_flag);
|
88
|
+
var subgroup_style_mode = get_display_style(subgroup_flag);
|
89
|
+
var elems = document.getElementsByClassName(classname)
|
90
|
+
for (var i=0; i<elems.length;i++) {
|
91
|
+
var style_mode = display_style_mode;
|
92
|
+
if ((display_flag != subgroup_flag) && (elems[i].getElementsByTagName('dt')[0].innerHTML.indexOf(", ") != -1)) {
|
93
|
+
elems[i].style.display = subgroup_style_mode;
|
94
|
+
} else {
|
95
|
+
elems[i].style.display = display_style_mode;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
// ]]>
|
101
|
+
</script>
|
102
|
+
<style type="text/css">
|
103
|
+
#rspec-header {
|
104
|
+
background: #65C400; color: #fff; height: 4em;
|
105
|
+
}
|
106
|
+
|
107
|
+
.rspec-report h1 {
|
108
|
+
margin: 0px 10px 0px 10px;
|
109
|
+
padding: 10px;
|
110
|
+
font-family: "Lucida Grande", Helvetica, sans-serif;
|
111
|
+
font-size: 1.8em;
|
112
|
+
position: absolute;
|
113
|
+
}
|
114
|
+
|
115
|
+
#label {
|
116
|
+
float:left;
|
117
|
+
}
|
118
|
+
|
119
|
+
#display-filters {
|
120
|
+
float:left;
|
121
|
+
padding: 28px 0 0 40%;
|
122
|
+
font-family: "Lucida Grande", Helvetica, sans-serif;
|
123
|
+
}
|
124
|
+
|
125
|
+
#summary {
|
126
|
+
float:right;
|
127
|
+
padding: 5px 10px;
|
128
|
+
font-family: "Lucida Grande", Helvetica, sans-serif;
|
129
|
+
text-align: right;
|
130
|
+
}
|
131
|
+
|
132
|
+
#summary p {
|
133
|
+
margin: 0 0 0 2px;
|
134
|
+
}
|
135
|
+
|
136
|
+
#summary #totals {
|
137
|
+
font-size: 1.2em;
|
138
|
+
}
|
139
|
+
|
140
|
+
.example_group {
|
141
|
+
margin: 0 10px 5px;
|
142
|
+
background: #fff;
|
143
|
+
}
|
144
|
+
|
145
|
+
dl {
|
146
|
+
margin: 0; padding: 0 0 5px;
|
147
|
+
font: normal 11px "Lucida Grande", Helvetica, sans-serif;
|
148
|
+
}
|
149
|
+
|
150
|
+
dt {
|
151
|
+
padding: 3px;
|
152
|
+
background: #65C400;
|
153
|
+
color: #fff;
|
154
|
+
font-weight: bold;
|
155
|
+
}
|
156
|
+
|
157
|
+
dd {
|
158
|
+
margin: 5px 0 5px 5px;
|
159
|
+
padding: 3px 3px 3px 18px;
|
160
|
+
}
|
161
|
+
|
162
|
+
dd .duration {
|
163
|
+
padding-left: 5px;
|
164
|
+
text-align: right;
|
165
|
+
right: 0px;
|
166
|
+
float:right;
|
167
|
+
}
|
168
|
+
|
169
|
+
dd.example.passed {
|
170
|
+
border-left: 5px solid #65C400;
|
171
|
+
border-bottom: 1px solid #65C400;
|
172
|
+
background: #DBFFB4; color: #3D7700;
|
173
|
+
}
|
174
|
+
|
175
|
+
dd.example.not_implemented {
|
176
|
+
border-left: 5px solid #FAF834;
|
177
|
+
border-bottom: 1px solid #FAF834;
|
178
|
+
background: #FCFB98; color: #131313;
|
179
|
+
}
|
180
|
+
|
181
|
+
dd.example.pending_fixed {
|
182
|
+
border-left: 5px solid #0000C2;
|
183
|
+
border-bottom: 1px solid #0000C2;
|
184
|
+
color: #0000C2; background: #D3FBFF;
|
185
|
+
}
|
186
|
+
|
187
|
+
dd.example.failed {
|
188
|
+
border-left: 5px solid #C20000;
|
189
|
+
border-bottom: 1px solid #C20000;
|
190
|
+
color: #C20000; background: #FFFBD3;
|
191
|
+
}
|
192
|
+
|
193
|
+
|
194
|
+
dt.not_implemented {
|
195
|
+
color: #000000; background: #FAF834;
|
196
|
+
}
|
197
|
+
|
198
|
+
dt.pending_fixed {
|
199
|
+
color: #FFFFFF; background: #C40D0D;
|
200
|
+
}
|
201
|
+
|
202
|
+
dt.failed {
|
203
|
+
color: #FFFFFF; background: #C40D0D;
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
#rspec-header.not_implemented {
|
208
|
+
color: #000000; background: #FAF834;
|
209
|
+
}
|
210
|
+
|
211
|
+
#rspec-header.pending_fixed {
|
212
|
+
color: #FFFFFF; background: #C40D0D;
|
213
|
+
}
|
214
|
+
|
215
|
+
#rspec-header.failed {
|
216
|
+
color: #FFFFFF; background: #C40D0D;
|
217
|
+
}
|
218
|
+
|
219
|
+
|
220
|
+
.backtrace {
|
221
|
+
color: #000;
|
222
|
+
font-size: 12px;
|
223
|
+
}
|
224
|
+
|
225
|
+
a {
|
226
|
+
color: #BE5C00;
|
227
|
+
}
|
228
|
+
|
229
|
+
/* Ruby code, style similar to vibrant ink */
|
230
|
+
.ruby {
|
231
|
+
font-size: 12px;
|
232
|
+
font-family: monospace;
|
233
|
+
color: white;
|
234
|
+
background-color: black;
|
235
|
+
padding: 0.1em 0 0.2em 0;
|
236
|
+
}
|
237
|
+
|
238
|
+
.ruby .keyword { color: #FF6600; }
|
239
|
+
.ruby .constant { color: #339999; }
|
240
|
+
.ruby .attribute { color: white; }
|
241
|
+
.ruby .global { color: white; }
|
242
|
+
.ruby .module { color: white; }
|
243
|
+
.ruby .class { color: white; }
|
244
|
+
.ruby .string { color: #66FF00; }
|
245
|
+
.ruby .ident { color: white; }
|
246
|
+
.ruby .method { color: #FFCC00; }
|
247
|
+
.ruby .number { color: white; }
|
248
|
+
.ruby .char { color: white; }
|
249
|
+
.ruby .comment { color: #9933CC; }
|
250
|
+
.ruby .symbol { color: white; }
|
251
|
+
.ruby .regex { color: #44B4CC; }
|
252
|
+
.ruby .punct { color: white; }
|
253
|
+
.ruby .escape { color: white; }
|
254
|
+
.ruby .interp { color: white; }
|
255
|
+
.ruby .expr { color: white; }
|
256
|
+
|
257
|
+
.ruby .offending { background-color: gray; }
|
258
|
+
.ruby .linenum {
|
259
|
+
width: 75px;
|
260
|
+
padding: 0.1em 1em 0.2em 0;
|
261
|
+
color: #000000;
|
262
|
+
background-color: #FFFBD3;
|
263
|
+
}
|
264
|
+
|
265
|
+
</style>
|
266
|
+
</head>
|
267
|
+
<body>
|
268
|
+
<div class="rspec-report">
|
269
|
+
|
270
|
+
<div id="rspec-header">
|
271
|
+
<div id="label">
|
272
|
+
<h1>RSpec Code Examples</h1>
|
273
|
+
</div>
|
274
|
+
|
275
|
+
<div id="display-filters">
|
276
|
+
<input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label>
|
277
|
+
<input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label>
|
278
|
+
<input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label>
|
279
|
+
</div>
|
280
|
+
|
281
|
+
<div id="summary">
|
282
|
+
<p id="totals"> </p>
|
283
|
+
<p id="duration"> </p>
|
284
|
+
</div>
|
285
|
+
</div>
|
286
|
+
|
287
|
+
|
288
|
+
<div class="results">
|
289
|
+
<div id="div_group_1" class="example_group passed">
|
290
|
+
<dl style="margin-left: 0px;">
|
291
|
+
<dt id="example_group_1" class="passed">Queryko::AfterAttributes</dt>
|
292
|
+
</dl>
|
293
|
+
</div>
|
294
|
+
<div id="div_group_2" class="example_group passed">
|
295
|
+
<dl style="margin-left: 15px;">
|
296
|
+
<dt id="example_group_2" class="passed">anonymous class</dt>
|
297
|
+
</dl>
|
298
|
+
</div>
|
299
|
+
<div id="div_group_3" class="example_group passed">
|
300
|
+
<dl style="margin-left: 30px;">
|
301
|
+
<dt id="example_group_3" class="passed">subclass</dt>
|
302
|
+
<script type="text/javascript">moveProgressBar('3.2');</script>
|
303
|
+
<dd class="example passed"><span class="passed_spec_name">has after attributes :id</span><span class='duration'>0.00098s</span></dd>
|
304
|
+
</dl>
|
305
|
+
</div>
|
306
|
+
<div id="div_group_4" class="example_group passed">
|
307
|
+
<dl style="margin-left: 30px;">
|
308
|
+
<dt id="example_group_4" class="passed">instance</dt>
|
309
|
+
</dl>
|
310
|
+
</div>
|
311
|
+
<div id="div_group_5" class="example_group passed">
|
312
|
+
<dl style="margin-left: 45px;">
|
313
|
+
<dt id="example_group_5" class="passed">#after_attributes</dt>
|
314
|
+
<script type="text/javascript">moveProgressBar('6.4');</script>
|
315
|
+
<dd class="example passed"><span class="passed_spec_name">has after attributes :id</span><span class='duration'>0.00041s</span></dd>
|
316
|
+
<script type="text/javascript">moveProgressBar('9.6');</script>
|
317
|
+
<dd class="example passed"><span class="passed_spec_name">doesn't override after_attributes</span><span class='duration'>0.00353s</span></dd>
|
318
|
+
</dl>
|
319
|
+
</div>
|
320
|
+
<div id="div_group_6" class="example_group passed">
|
321
|
+
<dl style="margin-left: 45px;">
|
322
|
+
<dt id="example_group_6" class="passed">#filter_after_attributes</dt>
|
323
|
+
<script type="text/javascript">moveProgressBar('12.9');</script>
|
324
|
+
<dd class="example passed"><span class="passed_spec_name">filtes attributes</span><span class='duration'>0.00529s</span></dd>
|
325
|
+
</dl>
|
326
|
+
</div>
|
327
|
+
<div id="div_group_7" class="example_group passed">
|
328
|
+
<dl style="margin-left: 15px;">
|
329
|
+
<dt id="example_group_7" class="passed">included</dt>
|
330
|
+
</dl>
|
331
|
+
</div>
|
332
|
+
<div id="div_group_8" class="example_group passed">
|
333
|
+
<dl style="margin-left: 30px;">
|
334
|
+
<dt id="example_group_8" class="passed">with attributeless class</dt>
|
335
|
+
<script type="text/javascript">moveProgressBar('16.1');</script>
|
336
|
+
<dd class="example passed"><span class="passed_spec_name">is working well</span><span class='duration'>0.00032s</span></dd>
|
337
|
+
</dl>
|
338
|
+
</div>
|
339
|
+
<div id="div_group_9" class="example_group passed">
|
340
|
+
<dl style="margin-left: 0px;">
|
341
|
+
<dt id="example_group_9" class="passed">Queryko::QueryObject</dt>
|
342
|
+
</dl>
|
343
|
+
</div>
|
344
|
+
<div id="div_group_10" class="example_group passed">
|
345
|
+
<dl style="margin-left: 15px;">
|
346
|
+
<dt id="example_group_10" class="passed">anonymous class</dt>
|
347
|
+
</dl>
|
348
|
+
</div>
|
349
|
+
<div id="div_group_11" class="example_group passed">
|
350
|
+
<dl style="margin-left: 30px;">
|
351
|
+
<dt id="example_group_11" class="passed">#call</dt>
|
352
|
+
<script type="text/javascript">moveProgressBar('19.3');</script>
|
353
|
+
<dd class="example passed"><span class="passed_spec_name">filters query with params</span><span class='duration'>0.00272s</span></dd>
|
354
|
+
</dl>
|
355
|
+
</div>
|
356
|
+
<div id="div_group_12" class="example_group passed">
|
357
|
+
<dl style="margin-left: 30px;">
|
358
|
+
<dt id="example_group_12" class="passed">#count</dt>
|
359
|
+
<script type="text/javascript">moveProgressBar('22.5');</script>
|
360
|
+
<dd class="example passed"><span class="passed_spec_name">should eq 3</span><span class='duration'>0.00215s</span></dd>
|
361
|
+
</dl>
|
362
|
+
</div>
|
363
|
+
<div id="div_group_13" class="example_group passed">
|
364
|
+
<dl style="margin-left: 30px;">
|
365
|
+
<dt id="example_group_13" class="passed">using ids</dt>
|
366
|
+
<script type="text/javascript">moveProgressBar('25.8');</script>
|
367
|
+
<dd class="example passed"><span class="passed_spec_name">filters query</span><span class='duration'>0.00219s</span></dd>
|
368
|
+
</dl>
|
369
|
+
</div>
|
370
|
+
<div id="div_group_14" class="example_group passed">
|
371
|
+
<dl style="margin-left: 30px;">
|
372
|
+
<dt id="example_group_14" class="passed">using limit</dt>
|
373
|
+
<script type="text/javascript">moveProgressBar('29.0');</script>
|
374
|
+
<dd class="example passed"><span class="passed_spec_name">filters query</span><span class='duration'>0.00222s</span></dd>
|
375
|
+
</dl>
|
376
|
+
</div>
|
377
|
+
<div id="div_group_15" class="example_group passed">
|
378
|
+
<dl style="margin-left: 30px;">
|
379
|
+
<dt id="example_group_15" class="passed">with page</dt>
|
380
|
+
</dl>
|
381
|
+
</div>
|
382
|
+
<div id="div_group_16" class="example_group passed">
|
383
|
+
<dl style="margin-left: 45px;">
|
384
|
+
<dt id="example_group_16" class="passed">1</dt>
|
385
|
+
<script type="text/javascript">moveProgressBar('32.2');</script>
|
386
|
+
<dd class="example passed"><span class="passed_spec_name">returns first page</span><span class='duration'>0.00241s</span></dd>
|
387
|
+
</dl>
|
388
|
+
</div>
|
389
|
+
<div id="div_group_17" class="example_group passed">
|
390
|
+
<dl style="margin-left: 45px;">
|
391
|
+
<dt id="example_group_17" class="passed">1</dt>
|
392
|
+
<script type="text/javascript">moveProgressBar('35.4');</script>
|
393
|
+
<dd class="example passed"><span class="passed_spec_name">returns first page</span><span class='duration'>0.00192s</span></dd>
|
394
|
+
</dl>
|
395
|
+
</div>
|
396
|
+
<div id="div_group_18" class="example_group passed">
|
397
|
+
<dl style="margin-left: 30px;">
|
398
|
+
<dt id="example_group_18" class="passed">total_count</dt>
|
399
|
+
</dl>
|
400
|
+
</div>
|
401
|
+
<div id="div_group_19" class="example_group passed">
|
402
|
+
<dl style="margin-left: 45px;">
|
403
|
+
<dt id="example_group_19" class="passed">when invoking count and total_count</dt>
|
404
|
+
<script type="text/javascript">moveProgressBar('38.7');</script>
|
405
|
+
<dd class="example passed"><span class="passed_spec_name">counts resource</span><span class='duration'>0.00285s</span></dd>
|
406
|
+
</dl>
|
407
|
+
</div>
|
408
|
+
<div id="div_group_20" class="example_group passed">
|
409
|
+
<dl style="margin-left: 45px;">
|
410
|
+
<dt id="example_group_20" class="passed">when invoking count only</dt>
|
411
|
+
<script type="text/javascript">moveProgressBar('41.9');</script>
|
412
|
+
<dd class="example passed"><span class="passed_spec_name">should eq 2</span><span class='duration'>0.00217s</span></dd>
|
413
|
+
</dl>
|
414
|
+
</div>
|
415
|
+
<div id="div_group_21" class="example_group passed">
|
416
|
+
<dl style="margin-left: 45px;">
|
417
|
+
<dt id="example_group_21" class="passed">when invoking total_count only</dt>
|
418
|
+
<script type="text/javascript">moveProgressBar('45.1');</script>
|
419
|
+
<dd class="example passed"><span class="passed_spec_name">should eq 3</span><span class='duration'>0.00195s</span></dd>
|
420
|
+
</dl>
|
421
|
+
</div>
|
422
|
+
<div id="div_group_22" class="example_group passed">
|
423
|
+
<dl style="margin-left: 30px;">
|
424
|
+
<dt id="example_group_22" class="passed">using since_id</dt>
|
425
|
+
<script type="text/javascript">moveProgressBar('48.3');</script>
|
426
|
+
<dd class="example passed"><span class="passed_spec_name">returns list of products</span><span class='duration'>0.00205s</span></dd>
|
427
|
+
</dl>
|
428
|
+
</div>
|
429
|
+
<div id="div_group_23" class="example_group passed">
|
430
|
+
<dl style="margin-left: 30px;">
|
431
|
+
<dt id="example_group_23" class="passed">using range_attribute</dt>
|
432
|
+
<script type="text/javascript">moveProgressBar('51.6');</script>
|
433
|
+
<dd class="example passed"><span class="passed_spec_name">returns list of products</span><span class='duration'>0.00325s</span></dd>
|
434
|
+
<script type="text/javascript">moveProgressBar('54.8');</script>
|
435
|
+
<dd class="example passed"><span class="passed_spec_name">returns list of products</span><span class='duration'>0.00338s</span></dd>
|
436
|
+
</dl>
|
437
|
+
</div>
|
438
|
+
<div id="div_group_24" class="example_group passed">
|
439
|
+
<dl style="margin-left: 30px;">
|
440
|
+
<dt id="example_group_24" class="passed">#add_range_attributes</dt>
|
441
|
+
<script type="text/javascript">moveProgressBar('58.0');</script>
|
442
|
+
<dd class="example passed"><span class="passed_spec_name">adds id</span><span class='duration'>0.00160s</span></dd>
|
443
|
+
</dl>
|
444
|
+
</div>
|
445
|
+
<div id="div_group_25" class="example_group passed">
|
446
|
+
<dl style="margin-left: 30px;">
|
447
|
+
<dt id="example_group_25" class="passed">#add_searchables</dt>
|
448
|
+
<script type="text/javascript">moveProgressBar('61.2');</script>
|
449
|
+
<dd class="example passed"><span class="passed_spec_name">adds id</span><span class='duration'>0.00206s</span></dd>
|
450
|
+
</dl>
|
451
|
+
</div>
|
452
|
+
<div id="div_group_26" class="example_group passed">
|
453
|
+
<dl style="margin-left: 0px;">
|
454
|
+
<dt id="example_group_26" class="passed">Queryko</dt>
|
455
|
+
<script type="text/javascript">moveProgressBar('64.5');</script>
|
456
|
+
<dd class="example passed"><span class="passed_spec_name">has a version number</span><span class='duration'>0.00065s</span></dd>
|
457
|
+
</dl>
|
458
|
+
</div>
|
459
|
+
<div id="div_group_27" class="example_group passed">
|
460
|
+
<dl style="margin-left: 0px;">
|
461
|
+
<dt id="example_group_27" class="passed">Queryko::RangeAttributes</dt>
|
462
|
+
</dl>
|
463
|
+
</div>
|
464
|
+
<div id="div_group_28" class="example_group passed">
|
465
|
+
<dl style="margin-left: 15px;">
|
466
|
+
<dt id="example_group_28" class="passed">anonymous class</dt>
|
467
|
+
</dl>
|
468
|
+
</div>
|
469
|
+
<div id="div_group_29" class="example_group passed">
|
470
|
+
<dl style="margin-left: 30px;">
|
471
|
+
<dt id="example_group_29" class="passed">subclass</dt>
|
472
|
+
<script type="text/javascript">moveProgressBar('67.7');</script>
|
473
|
+
<dd class="example passed"><span class="passed_spec_name">has range attributes :id</span><span class='duration'>0.00038s</span></dd>
|
474
|
+
</dl>
|
475
|
+
</div>
|
476
|
+
<div id="div_group_30" class="example_group passed">
|
477
|
+
<dl style="margin-left: 30px;">
|
478
|
+
<dt id="example_group_30" class="passed">instance</dt>
|
479
|
+
</dl>
|
480
|
+
</div>
|
481
|
+
<div id="div_group_31" class="example_group passed">
|
482
|
+
<dl style="margin-left: 45px;">
|
483
|
+
<dt id="example_group_31" class="passed">#range_attribute</dt>
|
484
|
+
<script type="text/javascript">moveProgressBar('70.9');</script>
|
485
|
+
<dd class="example passed"><span class="passed_spec_name">has range attributes :id</span><span class='duration'>0.00032s</span></dd>
|
486
|
+
<script type="text/javascript">moveProgressBar('74.1');</script>
|
487
|
+
<dd class="example passed"><span class="passed_spec_name">doesn't override range_attributes</span><span class='duration'>0.00033s</span></dd>
|
488
|
+
</dl>
|
489
|
+
</div>
|
490
|
+
<div id="div_group_32" class="example_group passed">
|
491
|
+
<dl style="margin-left: 45px;">
|
492
|
+
<dt id="example_group_32" class="passed">#filter_range_attributes</dt>
|
493
|
+
<script type="text/javascript">moveProgressBar('77.4');</script>
|
494
|
+
<dd class="example passed"><span class="passed_spec_name">filters attributes</span><span class='duration'>0.00301s</span></dd>
|
495
|
+
</dl>
|
496
|
+
</div>
|
497
|
+
<div id="div_group_33" class="example_group passed">
|
498
|
+
<dl style="margin-left: 60px;">
|
499
|
+
<dt id="example_group_33" class="passed">using min and max</dt>
|
500
|
+
<script type="text/javascript">moveProgressBar('80.6');</script>
|
501
|
+
<dd class="example passed"><span class="passed_spec_name">filters attributes</span><span class='duration'>0.00274s</span></dd>
|
502
|
+
</dl>
|
503
|
+
</div>
|
504
|
+
<div id="div_group_34" class="example_group passed">
|
505
|
+
<dl style="margin-left: 30px;">
|
506
|
+
<dt id="example_group_34" class="passed">included</dt>
|
507
|
+
</dl>
|
508
|
+
</div>
|
509
|
+
<div id="div_group_35" class="example_group passed">
|
510
|
+
<dl style="margin-left: 45px;">
|
511
|
+
<dt id="example_group_35" class="passed">with attributeless class</dt>
|
512
|
+
<script type="text/javascript">moveProgressBar('83.8');</script>
|
513
|
+
<dd class="example passed"><span class="passed_spec_name">is working well</span><span class='duration'>0.00029s</span></dd>
|
514
|
+
</dl>
|
515
|
+
</div>
|
516
|
+
<div id="div_group_36" class="example_group passed">
|
517
|
+
<dl style="margin-left: 0px;">
|
518
|
+
<dt id="example_group_36" class="passed">Queryko::Searchables</dt>
|
519
|
+
</dl>
|
520
|
+
</div>
|
521
|
+
<div id="div_group_37" class="example_group passed">
|
522
|
+
<dl style="margin-left: 15px;">
|
523
|
+
<dt id="example_group_37" class="passed">anonymous class</dt>
|
524
|
+
</dl>
|
525
|
+
</div>
|
526
|
+
<div id="div_group_38" class="example_group passed">
|
527
|
+
<dl style="margin-left: 30px;">
|
528
|
+
<dt id="example_group_38" class="passed">subclass</dt>
|
529
|
+
<script type="text/javascript">moveProgressBar('87.0');</script>
|
530
|
+
<dd class="example passed"><span class="passed_spec_name">has searchables name</span><span class='duration'>0.00032s</span></dd>
|
531
|
+
</dl>
|
532
|
+
</div>
|
533
|
+
<div id="div_group_39" class="example_group passed">
|
534
|
+
<dl style="margin-left: 30px;">
|
535
|
+
<dt id="example_group_39" class="passed">instance</dt>
|
536
|
+
</dl>
|
537
|
+
</div>
|
538
|
+
<div id="div_group_40" class="example_group passed">
|
539
|
+
<dl style="margin-left: 45px;">
|
540
|
+
<dt id="example_group_40" class="passed">#searchables</dt>
|
541
|
+
<script type="text/javascript">moveProgressBar('90.3');</script>
|
542
|
+
<dd class="example passed"><span class="passed_spec_name">has searchables :name</span><span class='duration'>0.00029s</span></dd>
|
543
|
+
<script type="text/javascript">moveProgressBar('93.5');</script>
|
544
|
+
<dd class="example passed"><span class="passed_spec_name">doesn't override searchables</span><span class='duration'>0.00032s</span></dd>
|
545
|
+
</dl>
|
546
|
+
</div>
|
547
|
+
<div id="div_group_41" class="example_group passed">
|
548
|
+
<dl style="margin-left: 45px;">
|
549
|
+
<dt id="example_group_41" class="passed">#filter_searchable</dt>
|
550
|
+
<script type="text/javascript">moveProgressBar('96.7');</script>
|
551
|
+
<dd class="example passed"><span class="passed_spec_name">filters attributes</span><span class='duration'>0.00313s</span></dd>
|
552
|
+
</dl>
|
553
|
+
</div>
|
554
|
+
<div id="div_group_42" class="example_group passed">
|
555
|
+
<dl style="margin-left: 30px;">
|
556
|
+
<dt id="example_group_42" class="passed">included</dt>
|
557
|
+
</dl>
|
558
|
+
</div>
|
559
|
+
<div id="div_group_43" class="example_group passed">
|
560
|
+
<dl style="margin-left: 45px;">
|
561
|
+
<dt id="example_group_43" class="passed">with attributeless class</dt>
|
562
|
+
<script type="text/javascript">moveProgressBar('100.0');</script>
|
563
|
+
<dd class="example passed"><span class="passed_spec_name">is working well</span><span class='duration'>0.00030s</span></dd>
|
564
|
+
</dl>
|
565
|
+
</div>
|
566
|
+
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0.06276 seconds</strong>";</script>
|
567
|
+
<script type="text/javascript">document.getElementById('totals').innerHTML = "31 examples, 0 failures";</script>
|
568
|
+
</div>
|
569
|
+
</div>
|
570
|
+
</body>
|
571
|
+
</html>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: queryko
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Nelson Valeros
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,19 +109,19 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: will_paginate
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- - "
|
115
|
+
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
-
type: :
|
117
|
+
version: 3.1.0
|
118
|
+
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- - "
|
122
|
+
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
124
|
+
version: 3.1.0
|
111
125
|
description: " This gem provides additional functionality on your query objects. It
|
112
126
|
will filter and paginate your query by supplying an option "
|
113
127
|
email:
|
@@ -134,6 +148,7 @@ files:
|
|
134
148
|
- lib/queryko/searchables.rb
|
135
149
|
- lib/queryko/version.rb
|
136
150
|
- queryko.gemspec
|
151
|
+
- test.html
|
137
152
|
homepage: https://github.com/neume/queryko
|
138
153
|
licenses:
|
139
154
|
- MIT
|