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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6310e4c222cfaed00a136ba6d9cf674f314726e353468551726b478f587aaa6b
4
- data.tar.gz: 8079b18382ac566bc8228e96581f642320f5e64385c17b80967a6d503af06e08
3
+ metadata.gz: 9b6fc3082f0af793f3662b64c9d8adb44011876052d3ad668df7ac6c3e091022
4
+ data.tar.gz: 46c52021042f4ee7fa94c414e7bc46ff8d864db23d22a59f75bf52a54f292f0f
5
5
  SHA512:
6
- metadata.gz: a5b7bae9d536b47cbf6246c9319df5ff1a354b12e3a4b0022124b89b9702485c194c604331a8025a419d6597270f8817345d7603b12ede66e752ea89157ec5af
7
- data.tar.gz: 4e7ee6d98b67118e9aa06cdb66c51dd24df3139ae62c776b7e19b6d98f9b1797dbb0a8eecffb87d302624e642fcaa81772eed21fe0804c06573b0ffcc9c04299
6
+ metadata.gz: 7c07e549329d0a33b30c35d331571ab02c81b88b7f87a7a7056ac6b39154cfe707ae552ed054c9287908ed2010b6b1142997840012f3c8eac69a7f77f5345e87
7
+ data.tar.gz: 87f949beb23627b5c1cda6d220269bb674234b589d7d61886e04b8f8ee095e923ede7b0a069340da87edc4272857063f2f194f0be24569c7632e0485db0cb156
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ .ruby-version
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- queryko (1.0.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
  |:---------|:-----------------------------|
@@ -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
- return relation
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
- relation.page(page).per(limit)
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
@@ -1,3 +1,3 @@
1
1
  module Queryko
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
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">&#160;</p>
283
+ <p id="duration">&#160;</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&#39;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&#39;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&#39;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.1
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-12 00:00:00.000000000 Z
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: activesupport
112
+ name: will_paginate
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :runtime
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: '0'
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