axiom-optimizer 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -1
  3. data/.rubocop.yml +6 -0
  4. data/.travis.yml +16 -20
  5. data/CONTRIBUTING.md +1 -2
  6. data/Gemfile +3 -1
  7. data/Gemfile.devtools +28 -18
  8. data/README.md +7 -13
  9. data/TODO +6 -5
  10. data/axiom-optimizer.gemspec +3 -3
  11. data/config/flay.yml +1 -1
  12. data/config/reek.yml +5 -29
  13. data/config/rubocop.yml +16 -10
  14. data/lib/axiom/optimizer.rb +3 -7
  15. data/lib/axiom/optimizer/algebra/difference.rb +2 -2
  16. data/lib/axiom/optimizer/algebra/extension.rb +6 -6
  17. data/lib/axiom/optimizer/algebra/intersection.rb +2 -2
  18. data/lib/axiom/optimizer/algebra/join.rb +4 -4
  19. data/lib/axiom/optimizer/algebra/product.rb +4 -4
  20. data/lib/axiom/optimizer/algebra/projection.rb +5 -5
  21. data/lib/axiom/optimizer/algebra/rename.rb +10 -10
  22. data/lib/axiom/optimizer/algebra/restriction.rb +8 -9
  23. data/lib/axiom/optimizer/algebra/summarization.rb +7 -7
  24. data/lib/axiom/optimizer/algebra/union.rb +2 -2
  25. data/lib/axiom/optimizer/function.rb +4 -6
  26. data/lib/axiom/optimizer/function/binary.rb +2 -2
  27. data/lib/axiom/optimizer/function/connective/binary.rb +1 -1
  28. data/lib/axiom/optimizer/function/connective/negation.rb +1 -1
  29. data/lib/axiom/optimizer/function/predicate.rb +1 -1
  30. data/lib/axiom/optimizer/function/predicate/comparable.rb +8 -6
  31. data/lib/axiom/optimizer/function/predicate/enumerable.rb +2 -2
  32. data/lib/axiom/optimizer/function/unary.rb +1 -1
  33. data/lib/axiom/optimizer/relation/operation/binary.rb +12 -12
  34. data/lib/axiom/optimizer/relation/operation/reverse.rb +9 -9
  35. data/lib/axiom/optimizer/relation/operation/{order.rb → sorted.rb} +15 -15
  36. data/lib/axiom/optimizer/relation/operation/unary.rb +7 -7
  37. data/lib/axiom/optimizer/support/predicate_partition.rb +11 -13
  38. data/lib/axiom/optimizer/version.rb +1 -1
  39. data/spec/integration/axiom/algebra/difference/optimize_spec.rb +12 -12
  40. data/spec/integration/axiom/algebra/intersection/optimize_spec.rb +12 -12
  41. data/spec/integration/axiom/algebra/join/optimize_spec.rb +6 -6
  42. data/spec/integration/axiom/algebra/product/optimize_spec.rb +10 -10
  43. data/spec/integration/axiom/algebra/projection/optimize_spec.rb +14 -14
  44. data/spec/integration/axiom/algebra/rename/optimize_spec.rb +38 -38
  45. data/spec/integration/axiom/algebra/restriction/optimize_spec.rb +12 -12
  46. data/spec/integration/axiom/algebra/summarization/optimize_spec.rb +2 -2
  47. data/spec/integration/axiom/algebra/union/optimize_spec.rb +16 -16
  48. data/spec/integration/axiom/function/optimize_spec.rb +1 -1
  49. data/spec/integration/axiom/relation/operation/limit/optimize_spec.rb +20 -20
  50. data/spec/integration/axiom/relation/operation/offset/optimize_spec.rb +14 -14
  51. data/spec/integration/axiom/relation/operation/reverse/optimize_spec.rb +15 -15
  52. data/spec/integration/axiom/relation/operation/{order → sorted}/optimize_spec.rb +6 -6
  53. data/spec/integration/axiom/relation/optimize_spec.rb +1 -1
  54. data/spec/shared/function_connective_binary_optimize_behavior.rb +8 -2
  55. data/spec/shared/optimize_method_behavior.rb +0 -11
  56. data/spec/spec_helper.rb +9 -9
  57. data/spec/support/config_alias.rb +2 -0
  58. data/spec/unit/axiom/optimizer/algebra/extension/{order_operand → sorted_operand}/optimizable_predicate_spec.rb +3 -3
  59. data/spec/unit/axiom/optimizer/algebra/extension/{order_operand → sorted_operand}/optimize_spec.rb +1 -1
  60. data/spec/unit/axiom/optimizer/algebra/rename/limit_operand/optimize_spec.rb +3 -3
  61. data/spec/unit/axiom/optimizer/algebra/rename/offset_operand/optimize_spec.rb +3 -3
  62. data/spec/unit/axiom/optimizer/algebra/rename/{order_operand → sorted_operand}/optimizable_predicate_spec.rb +3 -3
  63. data/spec/unit/axiom/optimizer/algebra/rename/{order_operand → sorted_operand}/optimize_spec.rb +2 -2
  64. data/spec/unit/axiom/optimizer/algebra/restriction/combination_operand/optimize_spec.rb +1 -1
  65. data/spec/unit/axiom/optimizer/algebra/restriction/predicate_spec.rb +5 -4
  66. data/spec/unit/axiom/optimizer/algebra/restriction/{order_operand → sorted_operand}/optimizable_predicate_spec.rb +3 -3
  67. data/spec/unit/axiom/optimizer/algebra/restriction/{order_operand → sorted_operand}/optimize_spec.rb +1 -1
  68. data/spec/unit/axiom/optimizer/algebra/summarization/empty_operand/class_methods/extension_default_spec.rb +1 -1
  69. data/spec/unit/axiom/optimizer/algebra/summarization/{order_operand → sorted_operand}/optimizable_predicate_spec.rb +3 -3
  70. data/spec/unit/axiom/optimizer/algebra/summarization/{order_operand → sorted_operand}/optimize_spec.rb +1 -1
  71. data/spec/unit/axiom/optimizer/algebra/summarization/summarize_per_spec.rb +1 -1
  72. data/spec/unit/axiom/optimizer/function/binary/constant_operands/optimizable_predicate_spec.rb +4 -4
  73. data/spec/unit/axiom/optimizer/function/connective/conjunction/contradiction/optimizable_predicate_spec.rb +2 -2
  74. data/spec/unit/axiom/optimizer/function/connective/disjunction/tautology/optimizable_predicate_spec.rb +2 -2
  75. data/spec/unit/axiom/optimizer/function/unary/constant_operand/optimizable_predicate_spec.rb +1 -1
  76. data/spec/unit/axiom/optimizer/function/util/class_methods/max_spec.rb +1 -1
  77. data/spec/unit/axiom/optimizer/function/util/class_methods/min_spec.rb +1 -1
  78. data/spec/unit/axiom/optimizer/optimizable/optimize_spec.rb +3 -3
  79. data/spec/unit/axiom/optimizer/optimizable_predicate_spec.rb +1 -5
  80. data/spec/unit/axiom/optimizer/optimize_spec.rb +1 -5
  81. data/spec/unit/axiom/optimizer/relation/operation/binary/{order_left → sorted_left}/optimizable_predicate_spec.rb +3 -3
  82. data/spec/unit/axiom/optimizer/relation/operation/binary/{order_left → sorted_left}/optimize_spec.rb +1 -1
  83. data/spec/unit/axiom/optimizer/relation/operation/binary/{order_right → sorted_right}/optimizable_predicate_spec.rb +3 -3
  84. data/spec/unit/axiom/optimizer/relation/operation/binary/{order_right → sorted_right}/optimize_spec.rb +1 -1
  85. data/spec/unit/axiom/optimizer/relation/operation/limit/equal_limit_operand/optimize_spec.rb +2 -2
  86. data/spec/unit/axiom/optimizer/relation/operation/limit/limit_operand/optimize_spec.rb +4 -4
  87. data/spec/unit/axiom/optimizer/relation/operation/limit/unoptimized_operand/optimize_spec.rb +3 -3
  88. data/spec/unit/axiom/optimizer/relation/operation/limit/zero_limit/optimize_spec.rb +2 -2
  89. data/spec/unit/axiom/optimizer/relation/operation/offset/offset_operand/optimize_spec.rb +3 -3
  90. data/spec/unit/axiom/optimizer/relation/operation/offset/unoptimized_operand/optimize_spec.rb +3 -3
  91. data/spec/unit/axiom/optimizer/relation/operation/offset/zero_offset/optimize_spec.rb +3 -3
  92. data/spec/unit/axiom/optimizer/relation/operation/reverse/{order_operand → sorted_operand}/optimizable_predicate_spec.rb +3 -3
  93. data/spec/unit/axiom/optimizer/relation/operation/reverse/{order_operand → sorted_operand}/optimize_spec.rb +2 -2
  94. data/spec/unit/axiom/optimizer/relation/operation/reverse/unoptimized_operand/optimize_spec.rb +4 -4
  95. data/spec/unit/axiom/optimizer/relation/operation/{order → sorted}/one_limit_operand/optimizable_predicate_spec.rb +2 -2
  96. data/spec/unit/axiom/optimizer/relation/operation/{order → sorted}/one_limit_operand/optimize_spec.rb +1 -1
  97. data/spec/unit/axiom/optimizer/relation/operation/{order/order_operand → sorted/sorted_operand}/optimizable_predicate_spec.rb +4 -4
  98. data/spec/unit/axiom/optimizer/relation/operation/{order/order_operand → sorted/sorted_operand}/optimize_spec.rb +5 -5
  99. data/spec/unit/axiom/optimizer/relation/operation/{order → sorted}/unoptimized_operand/optimizable_predicate_spec.rb +2 -2
  100. data/spec/unit/axiom/optimizer/relation/operation/{order → sorted}/unoptimized_operand/optimize_spec.rb +2 -2
  101. data/spec/unit/axiom/optimizer/relation/operation/unary/{order_operand → sorted_operand}/optimizable_predicate_spec.rb +4 -4
  102. data/spec/unit/axiom/optimizer/relation/operation/unary/{order_operand → sorted_operand}/optimize_spec.rb +2 -2
  103. metadata +291 -47
  104. data/spec/support/ice_nine_config.rb +0 -6
@@ -21,7 +21,7 @@ describe Algebra::Product, '#optimize' do
21
21
  end
22
22
 
23
23
  it 'does not execute right_body#each' do
24
- right_body.should_not_receive(:each)
24
+ expect(right_body).not_to receive(:each)
25
25
  subject
26
26
  end
27
27
 
@@ -38,7 +38,7 @@ describe Algebra::Product, '#optimize' do
38
38
  end
39
39
 
40
40
  it 'does not execute left_body#each' do
41
- left_body.should_not_receive(:each)
41
+ expect(left_body).not_to receive(:each)
42
42
  subject
43
43
  end
44
44
 
@@ -55,7 +55,7 @@ describe Algebra::Product, '#optimize' do
55
55
  end
56
56
 
57
57
  it 'does not execute right_body#each' do
58
- right_body.should_not_receive(:each)
58
+ expect(right_body).not_to receive(:each)
59
59
  subject
60
60
  end
61
61
 
@@ -72,7 +72,7 @@ describe Algebra::Product, '#optimize' do
72
72
  end
73
73
 
74
74
  it 'does not execute left_body#each' do
75
- left_body.should_not_receive(:each)
75
+ expect(left_body).not_to receive(:each)
76
76
  subject
77
77
  end
78
78
 
@@ -89,7 +89,7 @@ describe Algebra::Product, '#optimize' do
89
89
  end
90
90
 
91
91
  it 'does not execute right_body#each' do
92
- right_body.should_not_receive(:each)
92
+ expect(right_body).not_to receive(:each)
93
93
  subject
94
94
  end
95
95
 
@@ -106,7 +106,7 @@ describe Algebra::Product, '#optimize' do
106
106
  end
107
107
 
108
108
  it 'does not execute left_body#each' do
109
- left_body.should_not_receive(:each)
109
+ expect(left_body).not_to receive(:each)
110
110
  subject
111
111
  end
112
112
 
@@ -123,7 +123,7 @@ describe Algebra::Product, '#optimize' do
123
123
  end
124
124
 
125
125
  it 'does not execute right_body#each' do
126
- right_body.should_not_receive(:each)
126
+ expect(right_body).not_to receive(:each)
127
127
  subject
128
128
  end
129
129
 
@@ -140,7 +140,7 @@ describe Algebra::Product, '#optimize' do
140
140
  end
141
141
 
142
142
  it 'does not execute left_body#each' do
143
- left_body.should_not_receive(:each)
143
+ expect(left_body).not_to receive(:each)
144
144
  subject
145
145
  end
146
146
 
@@ -151,12 +151,12 @@ describe Algebra::Product, '#optimize' do
151
151
  it { should be(object) }
152
152
 
153
153
  it 'does not execute left_body#each' do
154
- left_body.should_not_receive(:each)
154
+ expect(left_body).not_to receive(:each)
155
155
  subject
156
156
  end
157
157
 
158
158
  it 'does not execute right_body#each' do
159
- right_body.should_not_receive(:each)
159
+ expect(right_body).not_to receive(:each)
160
160
  subject
161
161
  end
162
162
 
@@ -13,7 +13,7 @@ describe Algebra::Projection, '#optimize' do
13
13
 
14
14
  before do
15
15
  # skip dup of the body to avoid clearing the method stubs
16
- body.stub(:frozen?).and_return(true)
16
+ allow(body).to receive(:frozen?).and_return(true)
17
17
  end
18
18
 
19
19
  context 'when the attributes are equivalent to the relation headers, and in the same order' do
@@ -26,7 +26,7 @@ describe Algebra::Projection, '#optimize' do
26
26
  end
27
27
 
28
28
  it 'does not execute body#each' do
29
- body.should_not_receive(:each)
29
+ expect(body).not_to receive(:each)
30
30
  subject
31
31
  end
32
32
 
@@ -41,7 +41,7 @@ describe Algebra::Projection, '#optimize' do
41
41
  end
42
42
 
43
43
  it 'does not execute body#each' do
44
- body.should_not_receive(:each)
44
+ expect(body).not_to receive(:each)
45
45
  subject
46
46
  end
47
47
 
@@ -54,7 +54,7 @@ describe Algebra::Projection, '#optimize' do
54
54
  it { should be(object) }
55
55
 
56
56
  it 'does not execute body#each' do
57
- body.should_not_receive(:each)
57
+ expect(body).not_to receive(:each)
58
58
  subject
59
59
  end
60
60
 
@@ -85,7 +85,7 @@ describe Algebra::Projection, '#optimize' do
85
85
  end
86
86
 
87
87
  it 'does not execute body#each' do
88
- body.should_not_receive(:each)
88
+ expect(body).not_to receive(:each)
89
89
  subject
90
90
  end
91
91
 
@@ -109,7 +109,7 @@ describe Algebra::Projection, '#optimize' do
109
109
  end
110
110
 
111
111
  it 'does not execute body#each' do
112
- body.should_not_receive(:each)
112
+ expect(body).not_to receive(:each)
113
113
  subject
114
114
  end
115
115
 
@@ -133,7 +133,7 @@ describe Algebra::Projection, '#optimize' do
133
133
  end
134
134
 
135
135
  it 'does not execute body#each' do
136
- body.should_not_receive(:each)
136
+ expect(body).not_to receive(:each)
137
137
  subject
138
138
  end
139
139
 
@@ -158,7 +158,7 @@ describe Algebra::Projection, '#optimize' do
158
158
  end
159
159
 
160
160
  it 'does not execute body#each' do
161
- body.should_not_receive(:each)
161
+ expect(body).not_to receive(:each)
162
162
  subject
163
163
  end
164
164
 
@@ -175,8 +175,8 @@ describe Algebra::Projection, '#optimize' do
175
175
 
176
176
  before do
177
177
  # skip dup of the left and right body to avoid clearing the method stubs
178
- left_body.stub(:frozen?).and_return(true)
179
- right_body.stub(:frozen?).and_return(true)
178
+ allow(left_body).to receive(:frozen?).and_return(true)
179
+ allow(right_body).to receive(:frozen?).and_return(true)
180
180
  end
181
181
 
182
182
  it 'pushes the object to each relation, and combine the nested objects' do
@@ -189,14 +189,14 @@ describe Algebra::Projection, '#optimize' do
189
189
 
190
190
  it 'does not execute left_body#each' do
191
191
  pending 'TODO: should only compare left and right with #eql? if they are materialized' do
192
- left_body.should_not_receive(:each)
192
+ expect(left_body).to_not receive(:each)
193
193
  subject
194
194
  end
195
195
  end
196
196
 
197
197
  it 'does not execute right_body#each' do
198
198
  pending 'TODO: should only compare left and right with #eql? if they are materialized' do
199
- right_body.should_not_receive(:each)
199
+ expect(right_body).to_not receive(:each)
200
200
  subject
201
201
  end
202
202
  end
@@ -222,13 +222,13 @@ describe Algebra::Projection, '#optimize' do
222
222
 
223
223
  it 'executes left_body#each' do
224
224
  pending 'TODO: make sure this is only received once'
225
- left_body.should_receive(:each)
225
+ expect(left_body).to receive(:each)
226
226
  subject
227
227
  end
228
228
 
229
229
  it 'executes right_body#each' do
230
230
  pending 'TODO: make sure this is only received once'
231
- right_body.should_receive(:each)
231
+ expect(right_body).to receive(:each)
232
232
  subject
233
233
  end
234
234
 
@@ -15,7 +15,7 @@ describe Algebra::Rename, '#optimize' do
15
15
  it { should be(object) }
16
16
 
17
17
  it 'does not execute body#each' do
18
- body.should_not_receive(:each)
18
+ expect(body).not_to receive(:each)
19
19
  subject
20
20
  end
21
21
 
@@ -32,7 +32,7 @@ describe Algebra::Rename, '#optimize' do
32
32
  end
33
33
 
34
34
  it 'does not execute body#each' do
35
- body.should_not_receive(:each)
35
+ expect(body).not_to receive(:each)
36
36
  subject
37
37
  end
38
38
 
@@ -57,7 +57,7 @@ describe Algebra::Rename, '#optimize' do
57
57
  end
58
58
 
59
59
  it 'does not execute body#each' do
60
- body.should_not_receive(:each)
60
+ expect(body).not_to receive(:each)
61
61
  subject
62
62
  end
63
63
 
@@ -87,7 +87,7 @@ describe Algebra::Rename, '#optimize' do
87
87
  end
88
88
 
89
89
  it 'does not execute body#each' do
90
- body.should_not_receive(:each)
90
+ expect(body).not_to receive(:each)
91
91
  subject
92
92
  end
93
93
 
@@ -116,7 +116,7 @@ describe Algebra::Rename, '#optimize' do
116
116
  end
117
117
 
118
118
  it 'does not execute body#each' do
119
- body.should_not_receive(:each)
119
+ expect(body).not_to receive(:each)
120
120
  subject
121
121
  end
122
122
 
@@ -134,7 +134,7 @@ describe Algebra::Rename, '#optimize' do
134
134
  end
135
135
 
136
136
  it 'does not execute body#each' do
137
- body.should_not_receive(:each)
137
+ expect(body).not_to receive(:each)
138
138
  subject
139
139
  end
140
140
 
@@ -155,7 +155,7 @@ describe Algebra::Rename, '#optimize' do
155
155
  end
156
156
 
157
157
  it 'does not execute body#each' do
158
- body.should_not_receive(:each)
158
+ expect(body).not_to receive(:each)
159
159
  subject
160
160
  end
161
161
 
@@ -175,7 +175,7 @@ describe Algebra::Rename, '#optimize' do
175
175
  end
176
176
 
177
177
  it 'does not execute body#each' do
178
- body.should_not_receive(:each)
178
+ expect(body).not_to receive(:each)
179
179
  subject
180
180
  end
181
181
 
@@ -196,7 +196,7 @@ describe Algebra::Rename, '#optimize' do
196
196
  end
197
197
 
198
198
  it 'does not execute body#each' do
199
- body.should_not_receive(:each)
199
+ expect(body).not_to receive(:each)
200
200
  subject
201
201
  end
202
202
 
@@ -216,7 +216,7 @@ describe Algebra::Rename, '#optimize' do
216
216
  end
217
217
 
218
218
  it 'does not execute body#each' do
219
- body.should_not_receive(:each)
219
+ expect(body).not_to receive(:each)
220
220
  subject
221
221
  end
222
222
 
@@ -237,7 +237,7 @@ describe Algebra::Rename, '#optimize' do
237
237
  end
238
238
 
239
239
  it 'does not execute body#each' do
240
- body.should_not_receive(:each)
240
+ expect(body).not_to receive(:each)
241
241
  subject
242
242
  end
243
243
 
@@ -259,7 +259,7 @@ describe Algebra::Rename, '#optimize' do
259
259
  end
260
260
 
261
261
  it 'does not execute body#each' do
262
- body.should_not_receive(:each)
262
+ expect(body).not_to receive(:each)
263
263
  subject
264
264
  end
265
265
 
@@ -270,7 +270,7 @@ describe Algebra::Rename, '#optimize' do
270
270
  let(:limit) { relation.sort_by { |r| [r.id, r.name] }.take(2) }
271
271
  let(:operand) { limit.reverse }
272
272
 
273
- it 'pushes the object under the order, limit and reverse' do
273
+ it 'pushes the object under the sorted, limit and reverse' do
274
274
  should eql(relation.rename(aliases).sort_by { |r| [r.other_id, r.name] }.take(2).reverse)
275
275
  end
276
276
 
@@ -279,7 +279,7 @@ describe Algebra::Rename, '#optimize' do
279
279
  end
280
280
 
281
281
  it 'does not execute body#each' do
282
- body.should_not_receive(:each)
282
+ expect(body).not_to receive(:each)
283
283
  subject
284
284
  end
285
285
 
@@ -291,7 +291,7 @@ describe Algebra::Rename, '#optimize' do
291
291
  let(:operand) { limit.rename(id: :other_id).reverse }
292
292
  let(:aliases) { { other_id: :id } }
293
293
 
294
- it 'pushes the object under the order, limit and reverse, and then cancel it out' do
294
+ it 'pushes the object under the sorted, limit and reverse, and then cancel it out' do
295
295
  should eql(relation.sort_by { |r| [r.id, r.name] }.take(2).reverse)
296
296
  end
297
297
 
@@ -300,17 +300,17 @@ describe Algebra::Rename, '#optimize' do
300
300
  end
301
301
 
302
302
  it 'does not execute body#each' do
303
- body.should_not_receive(:each)
303
+ expect(body).not_to receive(:each)
304
304
  subject
305
305
  end
306
306
 
307
307
  it_should_behave_like 'an optimize method'
308
308
  end
309
309
 
310
- context 'containing an order operation' do
310
+ context 'containing a sorted operation' do
311
311
  let(:operand) { relation.sort_by { |r| [r.id, r.name] } }
312
312
 
313
- it 'pushes the object under the order' do
313
+ it 'pushes the object under the sorted' do
314
314
  should eql(relation.rename(aliases).sort_by { |r| [r.other_id, r.name] })
315
315
  end
316
316
 
@@ -319,18 +319,18 @@ describe Algebra::Rename, '#optimize' do
319
319
  end
320
320
 
321
321
  it 'does not execute body#each' do
322
- body.should_not_receive(:each)
322
+ expect(body).not_to receive(:each)
323
323
  subject
324
324
  end
325
325
 
326
326
  it_should_behave_like 'an optimize method'
327
327
  end
328
328
 
329
- context 'containing an order operation, containing a object that cancels out' do
329
+ context 'containing a sorted operation, containing a object that cancels out' do
330
330
  let(:operand) { relation.rename(id: :other_id).sort_by { |r| [r.other_id, r.name] } }
331
331
  let(:aliases) { { other_id: :id } }
332
332
 
333
- it 'pushes the object under the order, and then cancel it out' do
333
+ it 'pushes the object under the sorted, and then cancel it out' do
334
334
  should eql(relation.sort_by { |r| [r.id, r.name] })
335
335
  end
336
336
 
@@ -339,7 +339,7 @@ describe Algebra::Rename, '#optimize' do
339
339
  end
340
340
 
341
341
  it 'does not execute body#each' do
342
- body.should_not_receive(:each)
342
+ expect(body).not_to receive(:each)
343
343
  subject
344
344
  end
345
345
 
@@ -347,10 +347,10 @@ describe Algebra::Rename, '#optimize' do
347
347
  end
348
348
 
349
349
  context 'containing a limit operation' do
350
- let(:order) { relation.sort_by { |r| [r.id, r.name] } }
351
- let(:operand) { order.take(2) }
350
+ let(:sorted) { relation.sort_by { |r| [r.id, r.name] } }
351
+ let(:operand) { sorted.take(2) }
352
352
 
353
- it 'pushes the object under the limit and order' do
353
+ it 'pushes the object under the limit and sorted' do
354
354
  should eql(relation.rename(aliases).sort_by { |r| [r.other_id, r.name] }.take(2))
355
355
  end
356
356
 
@@ -359,7 +359,7 @@ describe Algebra::Rename, '#optimize' do
359
359
  end
360
360
 
361
361
  it 'does not execute body#each' do
362
- body.should_not_receive(:each)
362
+ expect(body).not_to receive(:each)
363
363
  subject
364
364
  end
365
365
 
@@ -367,11 +367,11 @@ describe Algebra::Rename, '#optimize' do
367
367
  end
368
368
 
369
369
  context 'containing a limit operation, containing a object that cancels out' do
370
- let(:order) { relation.sort_by { |r| [r.id, r.name] } }
371
- let(:operand) { order.rename(id: :other_id).take(2) }
370
+ let(:sorted) { relation.sort_by { |r| [r.id, r.name] } }
371
+ let(:operand) { sorted.rename(id: :other_id).take(2) }
372
372
  let(:aliases) { { other_id: :id } }
373
373
 
374
- it 'pushes the object under the limit and order, and then cancel it out' do
374
+ it 'pushes the object under the limit and sorted, and then cancel it out' do
375
375
  should eql(relation.sort_by { |r| [r.id, r.name] }.take(2))
376
376
  end
377
377
 
@@ -380,7 +380,7 @@ describe Algebra::Rename, '#optimize' do
380
380
  end
381
381
 
382
382
  it 'does not execute body#each' do
383
- body.should_not_receive(:each)
383
+ expect(body).not_to receive(:each)
384
384
  subject
385
385
  end
386
386
 
@@ -388,10 +388,10 @@ describe Algebra::Rename, '#optimize' do
388
388
  end
389
389
 
390
390
  context 'containing an offset operation' do
391
- let(:order) { relation.sort_by { |r| [r.id, r.name] } }
392
- let(:operand) { order.drop(1) }
391
+ let(:sorted) { relation.sort_by { |r| [r.id, r.name] } }
392
+ let(:operand) { sorted.drop(1) }
393
393
 
394
- it 'pushes the object under the offset and order' do
394
+ it 'pushes the object under the offset and sorted' do
395
395
  should eql(relation.rename(aliases).sort_by { |r| [r.other_id, r.name] }.drop(1))
396
396
  end
397
397
 
@@ -400,7 +400,7 @@ describe Algebra::Rename, '#optimize' do
400
400
  end
401
401
 
402
402
  it 'does not execute body#each' do
403
- body.should_not_receive(:each)
403
+ expect(body).not_to receive(:each)
404
404
  subject
405
405
  end
406
406
 
@@ -408,11 +408,11 @@ describe Algebra::Rename, '#optimize' do
408
408
  end
409
409
 
410
410
  context 'containing an offset operation, containing a object that cancels out' do
411
- let(:order) { relation.sort_by { |r| [r.id, r.name] } }
412
- let(:operand) { order.rename(id: :other_id).drop(1) }
411
+ let(:sorted) { relation.sort_by { |r| [r.id, r.name] } }
412
+ let(:operand) { sorted.rename(id: :other_id).drop(1) }
413
413
  let(:aliases) { { other_id: :id } }
414
414
 
415
- it 'pushes the object under the offset and order, and then cancel it out' do
415
+ it 'pushes the object under the offset and sorted, and then cancel it out' do
416
416
  should eql(relation.sort_by { |r| [r.id, r.name] }.drop(1))
417
417
  end
418
418
 
@@ -421,7 +421,7 @@ describe Algebra::Rename, '#optimize' do
421
421
  end
422
422
 
423
423
  it 'does not execute body#each' do
424
- body.should_not_receive(:each)
424
+ expect(body).not_to receive(:each)
425
425
  subject
426
426
  end
427
427