glasses 1.6.2 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/glasses.rb +254 -10
- data/lib/glasses/version.rb +1 -1
- data/spec/dummy/app/controllers/search_controller.rb +29 -17
- data/spec/dummy/app/views/search/full_raw_search_range.html.erb +0 -0
- data/spec/dummy/app/views/search/full_search.html.erb +0 -0
- data/spec/dummy/app/views/search/full_search_range.html.erb +0 -0
- data/spec/dummy/app/views/search/range_search.html.erb +30 -0
- data/spec/dummy/app/views/search/raw_full_search.html.erb +0 -0
- data/spec/dummy/app/views/search/raw_range_search.html.erb +25 -0
- data/spec/dummy/app/views/search/simple_search.html.erb +4 -2
- data/spec/dummy/config/routes.rb +3 -54
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/seeds.rb +2 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +2628 -0
- data/spec/dummy/log/test.log +42280 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-n4kyDOdRxiiiIJEFA9cId9azJmW5g6hmwbs8SJ4qRg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2SBt5E86bhaTcl7TkcrIXPVQyQtH9yIRArRC_UxPck4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2Tqd0MZWTPMTu8CoqlOCudnpF2UapAVb-1Qd3gZnzWs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4m7rzZ6NLrCLYY8Klx2qByvjsF9EwTrhkqhffC_ddIU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4wucpOHsDYdErjU4sC9i1FT33L-WRugEHtfQdiz-CXY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AE40Tp96RkdOo7EhY00dhAOG17GUBn6QkZxp0HQVRQA.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CtIOdYL64ZUZ8_1ALDOZWNEis9WeBXUYTZ95MGCwJxk.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DMb_4zR5zBmQGRtZlXIrUCrkOrY-Wzw_ESjc3NoXX6s.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FfRbjoX7fHHQqnXiehqlD233T1kj4rzNPybfmQ_GUWI.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JlLKJj3SMeXmPLYJvdO955A6OPH9wSTWF3QFOvbaT0k.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Mo_r4nJu9qt0iEhVH0CXGZkIh_SCKfu3LoDU6GlMT-U.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PjzZwmbYJUPXBPEKfYAIld32mtAk3H0hBz7ONWVqza4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QYBC6SiWic96YuGP27vORM8frM2yoCxYATSeAuu3q3s.cache +2 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QfZ4TPv_vTZ6WmGKJEhbsZ0Ou73XHsnuUlsaYV3ZQEY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XIp7H1NvI9qObEEUnVrJoJ0TgF9dsNRmdw7bkMLyf64.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aCkopDHgOZcXcLJcYI3sgc_SuAZhhr9RkRQshzmldF8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bkZWDwb871tTLoM-W80twc_qhQ_ziPfInIfbzCcLnpE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gLJlx0p_IOKb7r9m3hjLdN2jGSicQ_Ns4SS1jWlFDAQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/i9TsnRfu6oqRsV9V2v_6Ulubst2IVveepQEkimUU6QE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iEVE5Kzzv15cyQWfQGEbgnKSSO0xiblZzP-sO26AYGQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rRXYm5yDdh2lrn8etfERia5zGqWg3_cJ3siQQG6h9UU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/t3hd5M5Qs7xWqz8gFCvXf781-4lYaem1SZCLRh47qCc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yHIJ2OseWB_qclWx7fwHLHPAVYOch64QqS8Y07WHhRk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yuW5Zfj9wAku7kLsnPBHwLsetLDeWKm9ju_dm_GLgf0.cache +1 -0
- data/spec/features/full_search_form_test.rb +0 -0
- data/spec/features/range_search_form_test.rb +79 -0
- data/spec/features/search_performance_test_in_app.rb +0 -0
- data/spec/features/simple_search_form_test.rb +34 -9
- data/spec/glasses_spec.rb +8 -1
- data/spec/test_only_methods/example_only_methods.rb +65 -0
- data/spec/tests/full_search_test.rb +63 -0
- data/spec/tests/parameters_priority_test.rb +51 -0
- data/spec/tests/performance_test.rb +0 -0
- data/spec/tests/range_search_test.rb +43 -0
- data/spec/tests/sanitized_search_test.rb +19 -7
- data/spec/tests/search_test.rb +18 -8
- metadata +78 -4
- data/spec/scratches/example_only_methods.rb +0 -26
@@ -1,22 +1,34 @@
|
|
1
|
-
describe Glasses do
|
2
|
-
|
3
1
|
describe '.sanitized_search()' do
|
4
2
|
|
5
3
|
it 'is vulnerable to SQL injection when totally unprotected' do
|
6
|
-
results = Glasses.
|
4
|
+
results = Glasses.raw_search(Player, {first_name: "' OR 1 = 1 ) --"})
|
7
5
|
(results.size).should == 10
|
8
6
|
end
|
9
7
|
|
10
8
|
it 'is not vulnerable to SQL injection when protected' do
|
11
|
-
results = Glasses.
|
9
|
+
results = Glasses.search(Player, {first_name: "' OR 1 = 1 ) --"})
|
12
10
|
(results.size).should == 0
|
13
11
|
end
|
14
12
|
|
15
13
|
it 'correctly searches for a result in a sanitized_search' do
|
16
|
-
results = Glasses.
|
14
|
+
results = Glasses.search(Player, {first_name: "Jane"})
|
17
15
|
(results.size).should == 1
|
18
16
|
end
|
19
17
|
|
20
|
-
|
18
|
+
#it 'ensures that search has best performance than sanitized_search' do
|
19
|
+
# start1 = Time.now
|
20
|
+
# Glasses.search(Player, {first_name: "Jane"})
|
21
|
+
# end1 = Time.now
|
22
|
+
# start2 = Time.now
|
23
|
+
# Glasses.sanitized_search(Player, {first_name: "Jane"})
|
24
|
+
# end2 = Time.now
|
25
|
+
# puts (end1.to_f * 1000.0).to_i
|
26
|
+
# puts ((start1.to_f) * 1000.0).to_i
|
27
|
+
# puts (end2.to_f * 1000.0).to_i
|
28
|
+
# puts ((start2.to_f) * 1000.0).to_i
|
29
|
+
# puts ((end1 - start1) * 1000).to_i
|
30
|
+
# puts ((end2.to_f - start2.to_f) * 1000.0).to_i
|
31
|
+
# ((end1 - start1) < (end2 - start2)).should == true
|
32
|
+
#end
|
21
33
|
|
22
|
-
end
|
34
|
+
end
|
data/spec/tests/search_test.rb
CHANGED
@@ -1,23 +1,33 @@
|
|
1
|
-
describe Glasses do
|
2
|
-
|
3
1
|
describe 'search' do
|
4
2
|
|
5
3
|
it 'should search for an ActiveRecord model' do
|
6
|
-
|
7
4
|
((Glasses.search(Player,{first_name: "Jane"})).size).should == 1
|
8
|
-
|
9
5
|
end
|
10
6
|
|
11
7
|
it 'should search for an ActiveRecord model when input is only partial' do
|
12
|
-
|
13
8
|
((Glasses.search(Player,{first_name: "J"})).size).should == 2 # Jane & Jessica
|
14
|
-
|
15
9
|
end
|
16
10
|
|
17
11
|
it 'should return an empty array if no matches are found' do
|
18
12
|
(Glasses.search(Player,{first_name: "HELLOOOOOOO IZE A PLAYAH"})).should == []
|
19
13
|
end
|
20
14
|
|
21
|
-
|
15
|
+
it 'should return an empty array if no matches are found' do
|
16
|
+
(Glasses.search(Player,{first_name: " "})).should == []
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'search with boolean' do
|
20
|
+
it 'should search for an ActiveRecord model' do
|
21
|
+
((Glasses.search(Player,{first_name: "Jane", is_virgin_bool: '1'})).size).should == 1
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should search for an ActiveRecord model when input is only partial' do
|
25
|
+
((Glasses.search(Player,{first_name: "J", is_virgin_bool: '1'})).size).should == 2 # Jane & Jessica
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should return an empty array if no matches are found' do
|
29
|
+
(Glasses.search(Player,{first_name: "Bobby", is_virgin_bool: '1'}).size).should == 0
|
30
|
+
end
|
31
|
+
end
|
22
32
|
|
23
|
-
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glasses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Otávio Monteagudo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -163,7 +163,13 @@ files:
|
|
163
163
|
- spec/dummy/app/models/player.rb
|
164
164
|
- spec/dummy/app/views/layouts/application.html.erb
|
165
165
|
- spec/dummy/app/views/search/controller_sanitized_simple_search.html.erb
|
166
|
+
- spec/dummy/app/views/search/full_raw_search_range.html.erb
|
167
|
+
- spec/dummy/app/views/search/full_search.html.erb
|
168
|
+
- spec/dummy/app/views/search/full_search_range.html.erb
|
166
169
|
- spec/dummy/app/views/search/method_sanitized_simple_search.html.erb
|
170
|
+
- spec/dummy/app/views/search/range_search.html.erb
|
171
|
+
- spec/dummy/app/views/search/raw_full_search.html.erb
|
172
|
+
- spec/dummy/app/views/search/raw_range_search.html.erb
|
167
173
|
- spec/dummy/app/views/search/simple_search.html.erb
|
168
174
|
- spec/dummy/bin/bundle
|
169
175
|
- spec/dummy/bin/rails
|
@@ -202,6 +208,30 @@ files:
|
|
202
208
|
- spec/dummy/public/500.html
|
203
209
|
- spec/dummy/public/favicon.ico
|
204
210
|
- spec/dummy/test/test_helper.rb
|
211
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-n4kyDOdRxiiiIJEFA9cId9azJmW5g6hmwbs8SJ4qRg.cache
|
212
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2SBt5E86bhaTcl7TkcrIXPVQyQtH9yIRArRC_UxPck4.cache
|
213
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2Tqd0MZWTPMTu8CoqlOCudnpF2UapAVb-1Qd3gZnzWs.cache
|
214
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4m7rzZ6NLrCLYY8Klx2qByvjsF9EwTrhkqhffC_ddIU.cache
|
215
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4wucpOHsDYdErjU4sC9i1FT33L-WRugEHtfQdiz-CXY.cache
|
216
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AE40Tp96RkdOo7EhY00dhAOG17GUBn6QkZxp0HQVRQA.cache
|
217
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CtIOdYL64ZUZ8_1ALDOZWNEis9WeBXUYTZ95MGCwJxk.cache
|
218
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DMb_4zR5zBmQGRtZlXIrUCrkOrY-Wzw_ESjc3NoXX6s.cache
|
219
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FfRbjoX7fHHQqnXiehqlD233T1kj4rzNPybfmQ_GUWI.cache
|
220
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JlLKJj3SMeXmPLYJvdO955A6OPH9wSTWF3QFOvbaT0k.cache
|
221
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Mo_r4nJu9qt0iEhVH0CXGZkIh_SCKfu3LoDU6GlMT-U.cache
|
222
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PjzZwmbYJUPXBPEKfYAIld32mtAk3H0hBz7ONWVqza4.cache
|
223
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QYBC6SiWic96YuGP27vORM8frM2yoCxYATSeAuu3q3s.cache
|
224
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QfZ4TPv_vTZ6WmGKJEhbsZ0Ou73XHsnuUlsaYV3ZQEY.cache
|
225
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XIp7H1NvI9qObEEUnVrJoJ0TgF9dsNRmdw7bkMLyf64.cache
|
226
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aCkopDHgOZcXcLJcYI3sgc_SuAZhhr9RkRQshzmldF8.cache
|
227
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bkZWDwb871tTLoM-W80twc_qhQ_ziPfInIfbzCcLnpE.cache
|
228
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gLJlx0p_IOKb7r9m3hjLdN2jGSicQ_Ns4SS1jWlFDAQ.cache
|
229
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/i9TsnRfu6oqRsV9V2v_6Ulubst2IVveepQEkimUU6QE.cache
|
230
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iEVE5Kzzv15cyQWfQGEbgnKSSO0xiblZzP-sO26AYGQ.cache
|
231
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rRXYm5yDdh2lrn8etfERia5zGqWg3_cJ3siQQG6h9UU.cache
|
232
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/t3hd5M5Qs7xWqz8gFCvXf781-4lYaem1SZCLRh47qCc.cache
|
233
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yHIJ2OseWB_qclWx7fwHLHPAVYOch64QqS8Y07WHhRk.cache
|
234
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yuW5Zfj9wAku7kLsnPBHwLsetLDeWKm9ju_dm_GLgf0.cache
|
205
235
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/-5YHHhQNSe7DP0Orvh4Yznxx2tNs_gqpFgGw2aG9Z3Y.cache
|
206
236
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2SBt5E86bhaTcl7TkcrIXPVQyQtH9yIRArRC_UxPck4.cache
|
207
237
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2ee3JgN3SAjy0F6JxKIJ62QtBkcq6xfUvl5vonKpKTg.cache
|
@@ -226,11 +256,18 @@ files:
|
|
226
256
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/sgE7MzZJ_2ApXbjrysAQ5U9UYLG-4cF-A1PgntMu8M4.cache
|
227
257
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/x3uq8L9bH8xLwZLDYY0PVDTSeV-I_7g0rsm9W5RIBR4.cache
|
228
258
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/yuW5Zfj9wAku7kLsnPBHwLsetLDeWKm9ju_dm_GLgf0.cache
|
259
|
+
- spec/features/full_search_form_test.rb
|
260
|
+
- spec/features/range_search_form_test.rb
|
261
|
+
- spec/features/search_performance_test_in_app.rb
|
229
262
|
- spec/features/simple_search_form_test.rb
|
230
263
|
- spec/glasses_spec.rb
|
231
|
-
- spec/scratches/example_only_methods.rb
|
232
264
|
- spec/spec_helper.rb
|
233
265
|
- spec/tasks/rspec.rake
|
266
|
+
- spec/test_only_methods/example_only_methods.rb
|
267
|
+
- spec/tests/full_search_test.rb
|
268
|
+
- spec/tests/parameters_priority_test.rb
|
269
|
+
- spec/tests/performance_test.rb
|
270
|
+
- spec/tests/range_search_test.rb
|
234
271
|
- spec/tests/sanitized_search_test.rb
|
235
272
|
- spec/tests/search_test.rb
|
236
273
|
homepage: https://github.com/otamm/Glasses
|
@@ -271,7 +308,13 @@ test_files:
|
|
271
308
|
- spec/dummy/app/models/player.rb
|
272
309
|
- spec/dummy/app/views/layouts/application.html.erb
|
273
310
|
- spec/dummy/app/views/search/controller_sanitized_simple_search.html.erb
|
311
|
+
- spec/dummy/app/views/search/full_raw_search_range.html.erb
|
312
|
+
- spec/dummy/app/views/search/full_search.html.erb
|
313
|
+
- spec/dummy/app/views/search/full_search_range.html.erb
|
274
314
|
- spec/dummy/app/views/search/method_sanitized_simple_search.html.erb
|
315
|
+
- spec/dummy/app/views/search/range_search.html.erb
|
316
|
+
- spec/dummy/app/views/search/raw_full_search.html.erb
|
317
|
+
- spec/dummy/app/views/search/raw_range_search.html.erb
|
275
318
|
- spec/dummy/app/views/search/simple_search.html.erb
|
276
319
|
- spec/dummy/bin/bundle
|
277
320
|
- spec/dummy/bin/rails
|
@@ -311,6 +354,30 @@ test_files:
|
|
311
354
|
- spec/dummy/public/favicon.ico
|
312
355
|
- spec/dummy/Rakefile
|
313
356
|
- spec/dummy/test/test_helper.rb
|
357
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-n4kyDOdRxiiiIJEFA9cId9azJmW5g6hmwbs8SJ4qRg.cache
|
358
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2SBt5E86bhaTcl7TkcrIXPVQyQtH9yIRArRC_UxPck4.cache
|
359
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2Tqd0MZWTPMTu8CoqlOCudnpF2UapAVb-1Qd3gZnzWs.cache
|
360
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4m7rzZ6NLrCLYY8Klx2qByvjsF9EwTrhkqhffC_ddIU.cache
|
361
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4wucpOHsDYdErjU4sC9i1FT33L-WRugEHtfQdiz-CXY.cache
|
362
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aCkopDHgOZcXcLJcYI3sgc_SuAZhhr9RkRQshzmldF8.cache
|
363
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AE40Tp96RkdOo7EhY00dhAOG17GUBn6QkZxp0HQVRQA.cache
|
364
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bkZWDwb871tTLoM-W80twc_qhQ_ziPfInIfbzCcLnpE.cache
|
365
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CtIOdYL64ZUZ8_1ALDOZWNEis9WeBXUYTZ95MGCwJxk.cache
|
366
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DMb_4zR5zBmQGRtZlXIrUCrkOrY-Wzw_ESjc3NoXX6s.cache
|
367
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FfRbjoX7fHHQqnXiehqlD233T1kj4rzNPybfmQ_GUWI.cache
|
368
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gLJlx0p_IOKb7r9m3hjLdN2jGSicQ_Ns4SS1jWlFDAQ.cache
|
369
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/i9TsnRfu6oqRsV9V2v_6Ulubst2IVveepQEkimUU6QE.cache
|
370
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iEVE5Kzzv15cyQWfQGEbgnKSSO0xiblZzP-sO26AYGQ.cache
|
371
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JlLKJj3SMeXmPLYJvdO955A6OPH9wSTWF3QFOvbaT0k.cache
|
372
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Mo_r4nJu9qt0iEhVH0CXGZkIh_SCKfu3LoDU6GlMT-U.cache
|
373
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PjzZwmbYJUPXBPEKfYAIld32mtAk3H0hBz7ONWVqza4.cache
|
374
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QfZ4TPv_vTZ6WmGKJEhbsZ0Ou73XHsnuUlsaYV3ZQEY.cache
|
375
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QYBC6SiWic96YuGP27vORM8frM2yoCxYATSeAuu3q3s.cache
|
376
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rRXYm5yDdh2lrn8etfERia5zGqWg3_cJ3siQQG6h9UU.cache
|
377
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/t3hd5M5Qs7xWqz8gFCvXf781-4lYaem1SZCLRh47qCc.cache
|
378
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XIp7H1NvI9qObEEUnVrJoJ0TgF9dsNRmdw7bkMLyf64.cache
|
379
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yHIJ2OseWB_qclWx7fwHLHPAVYOch64QqS8Y07WHhRk.cache
|
380
|
+
- spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yuW5Zfj9wAku7kLsnPBHwLsetLDeWKm9ju_dm_GLgf0.cache
|
314
381
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/-5YHHhQNSe7DP0Orvh4Yznxx2tNs_gqpFgGw2aG9Z3Y.cache
|
315
382
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2ee3JgN3SAjy0F6JxKIJ62QtBkcq6xfUvl5vonKpKTg.cache
|
316
383
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2SBt5E86bhaTcl7TkcrIXPVQyQtH9yIRArRC_UxPck4.cache
|
@@ -335,10 +402,17 @@ test_files:
|
|
335
402
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/VQW8knFSHAGZ-SwN_2c-9i5SVI9s_5RKDO7GLW7A_yM.cache
|
336
403
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/x3uq8L9bH8xLwZLDYY0PVDTSeV-I_7g0rsm9W5RIBR4.cache
|
337
404
|
- spec/dummy/tmp/cache/assets/test/sprockets/v3.0/yuW5Zfj9wAku7kLsnPBHwLsetLDeWKm9ju_dm_GLgf0.cache
|
405
|
+
- spec/features/full_search_form_test.rb
|
406
|
+
- spec/features/range_search_form_test.rb
|
407
|
+
- spec/features/search_performance_test_in_app.rb
|
338
408
|
- spec/features/simple_search_form_test.rb
|
339
409
|
- spec/glasses_spec.rb
|
340
|
-
- spec/scratches/example_only_methods.rb
|
341
410
|
- spec/spec_helper.rb
|
342
411
|
- spec/tasks/rspec.rake
|
412
|
+
- spec/test_only_methods/example_only_methods.rb
|
413
|
+
- spec/tests/full_search_test.rb
|
414
|
+
- spec/tests/parameters_priority_test.rb
|
415
|
+
- spec/tests/performance_test.rb
|
416
|
+
- spec/tests/range_search_test.rb
|
343
417
|
- spec/tests/sanitized_search_test.rb
|
344
418
|
- spec/tests/search_test.rb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
def search_within_range(model_to_search,params_hash)
|
2
|
-
params_array = params_hash.to_a
|
3
|
-
query = ""
|
4
|
-
consecutive_ints = 0
|
5
|
-
params_array.each_with_index do |pair, index|
|
6
|
-
if !pair[1].empty?
|
7
|
-
if pair[0].to_s[key.size-3,key.size] == "_id" || pair[] ~= /\A[-+]?[0-9]+\z/ # checks if value is basically an integer within quotes
|
8
|
-
|
9
|
-
possible_query = "#{key} = #{val} AND "
|
10
|
-
consecutive_ints += 1
|
11
|
-
if consecutive_ints % 2 == 0 #check if the case is of an integer field followed by another
|
12
|
-
|
13
|
-
end
|
14
|
-
query += possible_query
|
15
|
-
else
|
16
|
-
query += "#{key} LIKE '#{val}%' AND " # percent sign matches any string of 0 or more chars.
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
if !query.empty?
|
21
|
-
query = query[0,query.size-5]
|
22
|
-
model_to_search.where(query)
|
23
|
-
else
|
24
|
-
[]
|
25
|
-
end
|
26
|
-
end
|