ransack 1.8.10 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.travis.yml +12 -3
  4. data/CHANGELOG.md +29 -5
  5. data/Gemfile +1 -9
  6. data/README.md +16 -25
  7. data/Rakefile +1 -22
  8. data/lib/polyamorous.rb +5 -18
  9. data/lib/polyamorous/activerecord_5.1_ruby_2/join_dependency.rb +2 -2
  10. data/lib/polyamorous/activerecord_5.2.0_ruby_2/join_dependency.rb +2 -2
  11. data/lib/polyamorous/activerecord_5.2.1_ruby_2/join_association.rb +38 -0
  12. data/lib/polyamorous/activerecord_5.2.1_ruby_2/join_dependency.rb +75 -0
  13. data/lib/ransack/adapters/active_record.rb +0 -9
  14. data/lib/ransack/adapters/active_record/base.rb +8 -0
  15. data/lib/ransack/adapters/active_record/context.rb +118 -182
  16. data/lib/ransack/adapters/active_record/ransack/context.rb +1 -8
  17. data/lib/ransack/adapters/active_record/ransack/translate.rb +1 -5
  18. data/lib/ransack/constants.rb +1 -1
  19. data/lib/ransack/context.rb +4 -0
  20. data/lib/ransack/nodes/value.rb +1 -1
  21. data/lib/ransack/search.rb +1 -1
  22. data/lib/ransack/version.rb +1 -1
  23. data/ransack.gemspec +4 -3
  24. data/spec/helpers/polyamorous_helper.rb +7 -9
  25. data/spec/ransack/adapters/active_record/base_spec.rb +35 -0
  26. data/spec/ransack/adapters/active_record/context_spec.rb +3 -6
  27. data/spec/ransack/helpers/form_builder_spec.rb +3 -15
  28. data/spec/ransack/helpers/form_helper_spec.rb +11 -99
  29. data/spec/ransack/join_association_spec.rb +1 -6
  30. data/spec/ransack/join_dependency_spec.rb +1 -6
  31. data/spec/ransack/search_spec.rb +2 -2
  32. data/spec/support/schema.rb +3 -21
  33. metadata +10 -83
  34. data/lib/polyamorous/activerecord_3_and_4.0_ruby_1.9/join_association.rb +0 -76
  35. data/lib/polyamorous/activerecord_3_and_4.0_ruby_1.9/join_dependency.rb +0 -96
  36. data/lib/polyamorous/activerecord_4.1_ruby_1.9/join_association.rb +0 -2
  37. data/lib/polyamorous/activerecord_4.1_ruby_1.9/join_dependency.rb +0 -4
  38. data/lib/polyamorous/activerecord_4.1_ruby_2/join_association.rb +0 -2
  39. data/lib/polyamorous/activerecord_4.1_ruby_2/join_dependency.rb +0 -3
  40. data/lib/polyamorous/activerecord_4.1_ruby_2/make_polyamorous_inner_joins.rb +0 -14
  41. data/lib/polyamorous/activerecord_4.2_ruby_1.9/join_association.rb +0 -46
  42. data/lib/polyamorous/activerecord_4.2_ruby_1.9/join_dependency.rb +0 -87
  43. data/lib/polyamorous/activerecord_4.2_ruby_2/join_association.rb +0 -2
  44. data/lib/polyamorous/activerecord_4.2_ruby_2/join_dependency.rb +0 -24
  45. data/lib/ransack/adapters/active_record/3.0/compat.rb +0 -173
  46. data/lib/ransack/adapters/active_record/3.0/context.rb +0 -203
  47. data/lib/ransack/adapters/active_record/3.1/context.rb +0 -212
  48. data/lib/ransack/adapters/active_record/3.2/context.rb +0 -44
  49. data/lib/ransack/adapters/mongoid.rb +0 -15
  50. data/lib/ransack/adapters/mongoid/3.2/.gitkeep +0 -0
  51. data/lib/ransack/adapters/mongoid/attributes/attribute.rb +0 -37
  52. data/lib/ransack/adapters/mongoid/attributes/order_predications.rb +0 -17
  53. data/lib/ransack/adapters/mongoid/attributes/predications.rb +0 -141
  54. data/lib/ransack/adapters/mongoid/base.rb +0 -134
  55. data/lib/ransack/adapters/mongoid/context.rb +0 -212
  56. data/lib/ransack/adapters/mongoid/inquiry_hash.rb +0 -23
  57. data/lib/ransack/adapters/mongoid/ransack/constants.rb +0 -88
  58. data/lib/ransack/adapters/mongoid/ransack/context.rb +0 -59
  59. data/lib/ransack/adapters/mongoid/ransack/nodes/condition.rb +0 -22
  60. data/lib/ransack/adapters/mongoid/ransack/translate.rb +0 -13
  61. data/lib/ransack/adapters/mongoid/ransack/visitor.rb +0 -18
  62. data/lib/ransack/adapters/mongoid/table.rb +0 -35
  63. data/spec/mongoid/adapters/mongoid/base_spec.rb +0 -314
  64. data/spec/mongoid/adapters/mongoid/context_spec.rb +0 -56
  65. data/spec/mongoid/configuration_spec.rb +0 -162
  66. data/spec/mongoid/dependencies_spec.rb +0 -8
  67. data/spec/mongoid/helpers/ransack_helper.rb +0 -11
  68. data/spec/mongoid/nodes/condition_spec.rb +0 -49
  69. data/spec/mongoid/nodes/grouping_spec.rb +0 -13
  70. data/spec/mongoid/predicate_spec.rb +0 -155
  71. data/spec/mongoid/search_spec.rb +0 -445
  72. data/spec/mongoid/support/mongoid.yml +0 -11
  73. data/spec/mongoid/support/schema.rb +0 -135
  74. data/spec/mongoid/translate_spec.rb +0 -14
  75. data/spec/mongoid_spec_helper.rb +0 -63
  76. data/spec/ransack/dependencies_spec.rb +0 -12
@@ -1,445 +0,0 @@
1
- require 'mongoid_spec_helper'
2
-
3
- module Ransack
4
- describe Search do
5
- describe '#initialize' do
6
- it "removes empty conditions before building" do
7
- expect_any_instance_of(Search).to receive(:build).with({})
8
- Search.new(Person, :name_eq => '')
9
- end
10
-
11
- it "keeps conditions with a false value before building" do
12
- expect_any_instance_of(Search).to receive(:build).with({"name_eq" => false})
13
- Search.new(Person, :name_eq => false)
14
- end
15
-
16
- it "keeps conditions with a value before building" do
17
- expect_any_instance_of(Search).to receive(:build).with({"name_eq" => 'foobar'})
18
- Search.new(Person, :name_eq => 'foobar')
19
- end
20
-
21
- it "removes empty suffixed conditions before building" do
22
- expect_any_instance_of(Search).to receive(:build).with({})
23
- Search.new(Person, :name_eq_any => [''])
24
- end
25
-
26
- it "keeps suffixed conditions with a false value before building" do
27
- expect_any_instance_of(Search).to receive(:build).with({"name_eq_any" => [false]})
28
- Search.new(Person, :name_eq_any => [false])
29
- end
30
-
31
- it "keeps suffixed conditions with a value before building" do
32
- expect_any_instance_of(Search).to receive(:build).with({"name_eq_any" => ['foobar']})
33
- Search.new(Person, :name_eq_any => ['foobar'])
34
- end
35
-
36
- it 'does not raise exception for string :params argument' do
37
- expect { Search.new(Person, '') }.not_to raise_error
38
- end
39
- end
40
-
41
- describe '#build' do
42
- it 'creates conditions for top-level attributes' do
43
- search = Search.new(Person, :name_eq => 'Ernie')
44
- condition = search.base[:name_eq]
45
- expect(condition).to be_a Nodes::Condition
46
- expect(condition.predicate.name).to eq 'eq'
47
- expect(condition.attributes.first.name).to eq 'name'
48
- expect(condition.value).to eq 'Ernie'
49
- end
50
-
51
- context 'joins' do
52
- before { pending 'not implemented for mongoid' }
53
-
54
- it 'creates conditions for association attributes' do
55
- search = Search.new(Person, :children_name_eq => 'Ernie')
56
- condition = search.base[:children_name_eq]
57
- expect(condition).to be_a Nodes::Condition
58
- expect(condition.predicate.name).to eq 'eq'
59
- expect(condition.attributes.first.name).to eq 'children_name'
60
- expect(condition.value).to eq 'Ernie'
61
- end
62
-
63
- it 'creates conditions for polymorphic belongs_to association attributes' do
64
- search = Search.new(Note, :notable_of_Person_type_name_eq => 'Ernie')
65
- condition = search.base[:notable_of_Person_type_name_eq]
66
- expect(condition).to be_a Nodes::Condition
67
- expect(condition.predicate.name).to eq 'eq'
68
- expect(condition.attributes.first.name).to eq 'notable_of_Person_type_name'
69
- expect(condition.value).to eq 'Ernie'
70
- end
71
-
72
- it 'creates conditions for multiple polymorphic belongs_to association attributes' do
73
- search = Search.new(Note,
74
- :notable_of_Person_type_name_or_notable_of_Article_type_title_eq => 'Ernie')
75
- condition = search.
76
- base[:notable_of_Person_type_name_or_notable_of_Article_type_title_eq]
77
- expect(condition).to be_a Nodes::Condition
78
- expect(condition.predicate.name).to eq 'eq'
79
- expect(condition.attributes.first.name).to eq 'notable_of_Person_type_name'
80
- expect(condition.attributes.last.name).to eq 'notable_of_Article_type_title'
81
- expect(condition.value).to eq 'Ernie'
82
- end
83
- before { skip }
84
- it 'accepts arrays of groupings with joins' do
85
- search = Search.new(Person,
86
- g: [
87
- { :m => 'or', :name_eq => 'Ernie', :children_name_eq => 'Ernie' },
88
- { :m => 'or', :name_eq => 'Bert', :children_name_eq => 'Bert' },
89
- ]
90
- )
91
- ors = search.groupings
92
- expect(ors.size).to eq(2)
93
- or1, or2 = ors
94
- expect(or1).to be_a Nodes::Grouping
95
- expect(or1.combinator).to eq 'or'
96
- expect(or2).to be_a Nodes::Grouping
97
- expect(or2.combinator).to eq 'or'
98
- end
99
-
100
- it 'accepts "attributes" hashes for groupings' do
101
- search = Search.new(Person,
102
- g: {
103
- '0' => { m: 'or', name_eq: 'Ernie', children_name_eq: 'Ernie' },
104
- '1' => { m: 'or', name_eq: 'Bert', children_name_eq: 'Bert' },
105
- }
106
- )
107
- ors = search.groupings
108
- expect(ors.size).to eq(2)
109
- or1, or2 = ors
110
- expect(or1).to be_a Nodes::Grouping
111
- expect(or1.combinator).to eq 'or'
112
- expect(or2).to be_a Nodes::Grouping
113
- expect(or2.combinator).to eq 'or'
114
- end
115
-
116
- it 'accepts "attributes" hashes for conditions' do
117
- search = Search.new(Person,
118
- :c => {
119
- '0' => { :a => ['name'], :p => 'eq', :v => ['Ernie'] },
120
- '1' => { :a => ['children_name', 'parent_name'],
121
- :p => 'eq', :v => ['Ernie'], :m => 'or' }
122
- }
123
- )
124
- conditions = search.base.conditions
125
- expect(conditions.size).to eq(2)
126
- expect(conditions.map { |c| c.class })
127
- .to eq [Nodes::Condition, Nodes::Condition]
128
- end
129
-
130
- before { skip }
131
- it 'does not evaluate the query on #inspect' do
132
- search = Search.new(Person, :children_id_in => [1, 2, 3])
133
- expect(search.inspect).not_to match /ActiveRecord/
134
- end
135
- end
136
-
137
- it 'discards empty conditions' do
138
- search = Search.new(Person, :children_name_eq => '')
139
- condition = search.base[:children_name_eq]
140
- expect(condition).to be_nil
141
- end
142
-
143
- it 'accepts arrays of groupings' do
144
- search = Search.new(Person,
145
- g: [
146
- { :m => 'or', :name_eq => 'Ernie', :email_eq => 'ernie@example.org' },
147
- { :m => 'or', :name_eq => 'Bert', :email_eq => 'bert@example.org' },
148
- ]
149
- )
150
- ors = search.groupings
151
- expect(ors.size).to eq(2)
152
- or1, or2 = ors
153
- expect(or1).to be_a Nodes::Grouping
154
- expect(or1.combinator).to eq 'or'
155
- expect(or2).to be_a Nodes::Grouping
156
- expect(or2.combinator).to eq 'or'
157
- end
158
-
159
- it 'creates conditions for custom predicates that take arrays' do
160
- Ransack.configure do |config|
161
- config.add_predicate 'ary_pred', :wants_array => true
162
- end
163
-
164
- search = Search.new(Person, :name_ary_pred => ['Ernie', 'Bert'])
165
- condition = search.base[:name_ary_pred]
166
- expect(condition).to be_a Nodes::Condition
167
- expect(condition.predicate.name).to eq 'ary_pred'
168
- expect(condition.attributes.first.name).to eq 'name'
169
- expect(condition.value).to eq ['Ernie', 'Bert']
170
- end
171
-
172
- context 'with an invalid condition' do
173
- subject { Search.new(Person, :unknown_attr_eq => 'Ernie') }
174
-
175
- context "when ignore_unknown_conditions is false" do
176
- before do
177
- Ransack.configure { |c| c.ignore_unknown_conditions = false }
178
- end
179
-
180
- specify { expect { subject }.to raise_error ArgumentError }
181
- end
182
-
183
- context "when ignore_unknown_conditions is true" do
184
- before do
185
- Ransack.configure { |c| c.ignore_unknown_conditions = true }
186
- end
187
-
188
- specify { expect { subject }.not_to raise_error }
189
- end
190
- end
191
- end
192
-
193
- describe '#result' do
194
- let(:people_name_field) {
195
- "#{quote_table_name("people")}.#{quote_column_name("name")}"
196
- }
197
- # let(:children_people_name_field) {
198
- # "#{quote_table_name("children_people")}.#{quote_column_name("name")}"
199
- # }
200
-
201
- it 'evaluates arrays of groupings' do
202
- search = Search.new(Person,
203
- :g => [
204
- { :m => 'or', :name_eq => 'Ernie', :email_eq => 'ernie@example.org' },
205
- { :m => 'or', :name_eq => 'Bert', :email_eq => 'bert@example.org' }
206
- ]
207
- )
208
- expect(search.result).to be_an Mongoid::Criteria
209
- selector = search.result.selector
210
- expect(selector.keys).to eq ['$and']
211
- first, second = selector.values.first
212
- expect(first).to eq({ '$or' => [ { 'name' => 'Ernie' }, { 'email' => 'ernie@example.org' } ] })
213
- expect(second).to eq({ '$or' => [ { 'name' => 'Bert' }, { 'email' => 'bert@example.org' } ] })
214
- end
215
-
216
- context 'with joins' do
217
- before { pending 'not implemented for mongoid' }
218
-
219
- it 'evaluates conditions contextually' do
220
- search = Search.new(Person, :children_name_eq => 'Ernie')
221
- expect(search.result).to be_an ActiveRecord::Relation
222
- where = search.result.where_values.first
223
- expect(where.to_sql).to match /#{children_people_name_field} = 'Ernie'/
224
- end
225
-
226
- it 'evaluates compound conditions contextually' do
227
- search = Search.new(Person, :children_name_or_name_eq => 'Ernie')
228
- expect(search.result).to be_an ActiveRecord::Relation
229
- where = search.result.where_values.first
230
- expect(where.to_sql).to match /#{children_people_name_field
231
- } = 'Ernie' OR #{people_name_field} = 'Ernie'/
232
- end
233
-
234
- it 'evaluates polymorphic belongs_to association conditions contextually' do
235
- search = Search.new(Note, :notable_of_Person_type_name_eq => 'Ernie')
236
- expect(search.result).to be_an ActiveRecord::Relation
237
- where = search.result.where_values.first
238
- expect(where.to_sql).to match /#{people_name_field} = 'Ernie'/
239
- end
240
-
241
- it 'evaluates nested conditions' do
242
- search = Search.new(Person, :children_name_eq => 'Ernie',
243
- :g => [
244
- { :m => 'or',
245
- :name_eq => 'Ernie',
246
- :children_children_name_eq => 'Ernie'
247
- }
248
- ]
249
- )
250
- expect(search.result).to be_an ActiveRecord::Relation
251
- where = search.result.where_values.first
252
- expect(where.to_sql).to match /#{children_people_name_field} = 'Ernie'/
253
- expect(where.to_sql).to match /#{people_name_field} = 'Ernie'/
254
- expect(where.to_sql).to match /#{quote_table_name("children_people_2")
255
- }.#{quote_column_name("name")} = 'Ernie'/
256
- end
257
-
258
- it 'evaluates arrays of groupings' do
259
- search = Search.new(Person,
260
- :g => [
261
- { :m => 'or', :name_eq => 'Ernie', :children_name_eq => 'Ernie' },
262
- { :m => 'or', :name_eq => 'Bert', :children_name_eq => 'Bert' }
263
- ]
264
- )
265
- expect(search.result).to be_an ActiveRecord::Relation
266
- where = search.result.where_values.first
267
- sql = where.to_sql
268
- first, second = sql.split(/ AND /)
269
- expect(first).to match /#{people_name_field} = 'Ernie'/
270
- expect(first).to match /#{children_people_name_field} = 'Ernie'/
271
- expect(second).to match /#{people_name_field} = 'Bert'/
272
- expect(second).to match /#{children_people_name_field} = 'Bert'/
273
- end
274
-
275
- it 'returns distinct records when passed :distinct => true' do
276
- search = Search.new(
277
- Person, :g => [
278
- { :m => 'or',
279
- :comments_body_cont => 'e',
280
- :articles_comments_body_cont => 'e'
281
- }
282
- ]
283
- )
284
- if ActiveRecord::VERSION::MAJOR == 3
285
- all_or_load, uniq_or_distinct = :all, :uniq
286
- else
287
- all_or_load, uniq_or_distinct = :load, :distinct
288
- end
289
- expect(search.result.send(all_or_load).size).
290
- to eq(9000)
291
- expect(search.result(:distinct => true).size).
292
- to eq(10)
293
- expect(search.result.send(all_or_load).send(uniq_or_distinct)).
294
- to eq search.result(:distinct => true).send(all_or_load)
295
- end
296
- end
297
- end
298
-
299
- describe '#sorts=' do
300
- before do
301
- @s = Search.new(Person)
302
- end
303
-
304
- it 'creates sorts based on a single attribute/direction' do
305
- @s.sorts = 'id desc'
306
- expect(@s.sorts.size).to eq(1)
307
- sort = @s.sorts.first
308
- expect(sort).to be_a Nodes::Sort
309
- expect(sort.name).to eq 'id'
310
- expect(sort.dir).to eq 'desc'
311
- expect(@s.result.options).to eq({ :sort => { '_id' => -1 } })
312
- end
313
-
314
- it 'creates sorts based on a single attribute and uppercase direction' do
315
- @s.sorts = 'id DESC'
316
- expect(@s.sorts.size).to eq(1)
317
- sort = @s.sorts.first
318
- expect(sort).to be_a Nodes::Sort
319
- expect(sort.name).to eq 'id'
320
- expect(sort.dir).to eq 'desc'
321
- expect(@s.result.options).to eq({ :sort => { '_id' => -1 } })
322
- end
323
-
324
- it 'creates sorts based on a single attribute and without direction' do
325
- @s.sorts = 'id'
326
- expect(@s.sorts.size).to eq(1)
327
- sort = @s.sorts.first
328
- expect(sort).to be_a Nodes::Sort
329
- expect(sort.name).to eq 'id'
330
- expect(sort.dir).to eq 'asc'
331
- expect(@s.result.options).to eq({ :sort => { '_id' => 1 } })
332
- end
333
-
334
- it 'creates sorts based on multiple attributes/directions in array format' do
335
- @s.sorts = ['id desc', { :name => 'name', :dir => 'asc' }]
336
- expect(@s.sorts.size).to eq(2)
337
- sort1, sort2 = @s.sorts
338
- expect(sort1).to be_a Nodes::Sort
339
- expect(sort1.name).to eq 'id'
340
- expect(sort1.dir).to eq 'desc'
341
- expect(sort2).to be_a Nodes::Sort
342
- expect(sort2.name).to eq 'name'
343
- expect(sort2.dir).to eq 'asc'
344
- expect(@s.result.options).to eq({ :sort=>{"_id"=>-1, "name"=>1} })
345
- end
346
-
347
- it 'creates sorts based on multiple attributes and uppercase directions in array format' do
348
- @s.sorts = ['id DESC', { :name => 'name', :dir => 'ASC' }]
349
- expect(@s.sorts.size).to eq(2)
350
- sort1, sort2 = @s.sorts
351
- expect(sort1).to be_a Nodes::Sort
352
- expect(sort1.name).to eq 'id'
353
- expect(sort1.dir).to eq 'desc'
354
- expect(sort2).to be_a Nodes::Sort
355
- expect(sort2.name).to eq 'name'
356
- expect(sort2.dir).to eq 'asc'
357
- expect(@s.result.options).to eq({ :sort=>{"_id"=>-1, "name"=>1} })
358
- end
359
-
360
- it 'creates sorts based on multiple attributes and different directions in array format' do
361
- @s.sorts = ['id DESC', { name: 'name', dir: nil }]
362
- expect(@s.sorts.size).to eq(2)
363
- sort1, sort2 = @s.sorts
364
- expect(sort1).to be_a Nodes::Sort
365
- expect(sort1.name).to eq 'id'
366
- expect(sort1.dir).to eq 'desc'
367
- expect(sort2).to be_a Nodes::Sort
368
- expect(sort2.name).to eq 'name'
369
- expect(sort2.dir).to eq 'asc'
370
- expect(@s.result.options).to eq({ :sort=>{"_id"=>-1, "name"=>1} })
371
- end
372
-
373
- it 'creates sorts based on multiple attributes/directions in hash format' do
374
- @s.sorts = {
375
- '0' => { :name => 'id', :dir => 'desc' },
376
- '1' => { :name => 'name', :dir => 'asc' }
377
- }
378
- expect(@s.sorts.size).to eq(2)
379
- expect(@s.sorts).to be_all { |s| Nodes::Sort === s }
380
- id_sort = @s.sorts.detect { |s| s.name == 'id' }
381
- name_sort = @s.sorts.detect { |s| s.name == 'name' }
382
- expect(id_sort.dir).to eq 'desc'
383
- expect(name_sort.dir).to eq 'asc'
384
- expect(@s.result.options).to eq({ :sort=>{"_id"=>-1, "name"=>1} })
385
- end
386
-
387
- it 'creates sorts based on multiple attributes and uppercase directions in hash format' do
388
- @s.sorts = {
389
- '0' => { :name => 'id', :dir => 'DESC' },
390
- '1' => { :name => 'name', :dir => 'ASC' }
391
- }
392
- expect(@s.sorts.size).to eq(2)
393
- expect(@s.sorts).to be_all { |s| Nodes::Sort === s }
394
- id_sort = @s.sorts.detect { |s| s.name == 'id' }
395
- name_sort = @s.sorts.detect { |s| s.name == 'name' }
396
- expect(id_sort.dir).to eq 'desc'
397
- expect(name_sort.dir).to eq 'asc'
398
- expect(@s.result.options).to eq({ :sort=>{"_id"=>-1, "name"=>1} })
399
- end
400
-
401
- it 'creates sorts based on multiple attributes and different directions in hash format' do
402
- @s.sorts = {
403
- '0' => { :name => 'id', :dir => 'DESC' },
404
- '1' => { :name => 'name', :dir => nil }
405
- }
406
- expect(@s.sorts.size).to eq(2)
407
- expect(@s.sorts).to be_all { |s| Nodes::Sort === s }
408
- id_sort = @s.sorts.detect { |s| s.name == 'id' }
409
- name_sort = @s.sorts.detect { |s| s.name == 'name' }
410
- expect(id_sort.dir).to eq 'desc'
411
- expect(name_sort.dir).to eq 'asc'
412
- expect(@s.result.options).to eq({ :sort=>{"_id"=>-1, "name"=>1} })
413
- end
414
-
415
- it 'overrides existing sort' do
416
- @s.sorts = 'id asc'
417
- expect(@s.result.first.id.to_s).to eq Person.min(:id).to_s
418
- end
419
- end
420
-
421
- describe '#method_missing' do
422
- before do
423
- @s = Search.new(Person)
424
- end
425
-
426
- it 'raises NoMethodError when sent an invalid attribute' do
427
- expect { @s.blah }.to raise_error NoMethodError
428
- end
429
-
430
- it 'sets condition attributes when sent valid attributes' do
431
- @s.name_eq = 'Ernie'
432
- expect(@s.name_eq).to eq 'Ernie'
433
- end
434
-
435
- context 'with joins' do
436
- it 'allows chaining to access nested conditions' do
437
- @s.groupings = [
438
- { :m => 'or', :name_eq => 'Ernie', :children_name_eq => 'Ernie' }
439
- ]
440
- expect(@s.groupings.first.children_name_eq).to eq 'Ernie'
441
- end
442
- end
443
- end
444
- end
445
- end
@@ -1,11 +0,0 @@
1
- test:
2
- clients:
3
- default:
4
- database: ransack_mongoid_test
5
- hosts:
6
- - localhost:27017
7
- sessions:
8
- default:
9
- database: ransack_mongoid_test
10
- hosts:
11
- - localhost:27017