queryko 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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