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
@@ -15,7 +15,7 @@ describe Algebra::Restriction, '#optimize' do
15
15
  it { should be(relation) }
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::Restriction, '#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
 
@@ -45,7 +45,7 @@ describe Algebra::Restriction, '#optimize' do
45
45
  it { should be(object) }
46
46
 
47
47
  it 'does not execute body#each' do
48
- body.should_not_receive(:each)
48
+ expect(body).not_to receive(:each)
49
49
  subject
50
50
  end
51
51
 
@@ -68,7 +68,7 @@ describe Algebra::Restriction, '#optimize' do
68
68
  end
69
69
 
70
70
  it 'does not execute body#each' do
71
- body.should_not_receive(:each)
71
+ expect(body).not_to receive(:each)
72
72
  subject
73
73
  end
74
74
 
@@ -92,7 +92,7 @@ describe Algebra::Restriction, '#optimize' do
92
92
  end
93
93
 
94
94
  it 'does not execute body#each' do
95
- body.should_not_receive(:each)
95
+ expect(body).not_to receive(:each)
96
96
  subject
97
97
  end
98
98
 
@@ -110,7 +110,7 @@ describe Algebra::Restriction, '#optimize' do
110
110
  end
111
111
 
112
112
  it 'does not execute body#each' do
113
- body.should_not_receive(:each)
113
+ expect(body).not_to receive(:each)
114
114
  subject
115
115
  end
116
116
 
@@ -128,7 +128,7 @@ describe Algebra::Restriction, '#optimize' do
128
128
  end
129
129
 
130
130
  it 'does not execute body#each' do
131
- body.should_not_receive(:each)
131
+ expect(body).not_to receive(:each)
132
132
  subject
133
133
  end
134
134
 
@@ -153,7 +153,7 @@ describe Algebra::Restriction, '#optimize' do
153
153
  end
154
154
 
155
155
  it 'does not execute body#each' do
156
- body.should_not_receive(:each)
156
+ expect(body).not_to receive(:each)
157
157
  subject
158
158
  end
159
159
 
@@ -175,18 +175,18 @@ describe Algebra::Restriction, '#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
 
182
182
  it_should_behave_like 'an optimize method'
183
183
  end
184
184
 
185
- context 'with an order operation' do
185
+ context 'with a sorted operation' do
186
186
  let(:operand) { relation.sort_by { |r| r.id } }
187
187
  let(:predicate) { operand[:id].gte(1) }
188
188
 
189
- it 'cancels out the order' do
189
+ it 'cancels out the sorted' do
190
190
  should eql(relation.restrict { predicate })
191
191
  end
192
192
 
@@ -195,7 +195,7 @@ describe Algebra::Restriction, '#optimize' do
195
195
  end
196
196
 
197
197
  it 'does not execute body#each' do
198
- body.should_not_receive(:each)
198
+ expect(body).not_to receive(:each)
199
199
  subject
200
200
  end
201
201
 
@@ -23,7 +23,7 @@ describe Algebra::Summarization, '#optimize' do
23
23
  end
24
24
 
25
25
  it 'does not execute body#each' do
26
- body.should_not_receive(:each)
26
+ expect(body).not_to receive(:each)
27
27
  subject
28
28
  end
29
29
 
@@ -40,7 +40,7 @@ describe Algebra::Summarization, '#optimize' do
40
40
  end
41
41
 
42
42
  it 'does not execute body#each' do
43
- body.should_not_receive(:each)
43
+ expect(body).not_to receive(:each)
44
44
  subject
45
45
  end
46
46
 
@@ -14,8 +14,8 @@ describe Algebra::Union, '#optimize' do
14
14
 
15
15
  before do
16
16
  # skip dup of the left and right body to avoid clearing the method stubs
17
- left_body.stub(:frozen?).and_return(true)
18
- right_body.stub(:frozen?).and_return(true)
17
+ allow(left_body).to receive(:frozen?).and_return(true)
18
+ allow(right_body).to receive(:frozen?).and_return(true)
19
19
  end
20
20
 
21
21
  context 'left is an empty relation' do
@@ -29,12 +29,12 @@ describe Algebra::Union, '#optimize' do
29
29
  end
30
30
 
31
31
  it 'does not execute left_body#each' do
32
- left_body.should_not_receive(:each)
32
+ expect(left_body).not_to receive(:each)
33
33
  subject
34
34
  end
35
35
 
36
36
  it 'does not execute right_body#each' do
37
- right_body.should_not_receive(:each)
37
+ expect(right_body).not_to receive(:each)
38
38
  subject
39
39
  end
40
40
 
@@ -52,12 +52,12 @@ describe Algebra::Union, '#optimize' do
52
52
  end
53
53
 
54
54
  it 'does not execute left_body#each' do
55
- left_body.should_not_receive(:each)
55
+ expect(left_body).not_to receive(:each)
56
56
  subject
57
57
  end
58
58
 
59
59
  it 'does not execute right_body#each' do
60
- right_body.should_not_receive(:each)
60
+ expect(right_body).not_to receive(:each)
61
61
  subject
62
62
  end
63
63
 
@@ -75,12 +75,12 @@ describe Algebra::Union, '#optimize' do
75
75
  end
76
76
 
77
77
  it 'does not execute left_body#each' do
78
- left_body.should_not_receive(:each)
78
+ expect(left_body).not_to receive(:each)
79
79
  subject
80
80
  end
81
81
 
82
82
  it 'does not execute right_body#each' do
83
- right_body.should_not_receive(:each)
83
+ expect(right_body).not_to receive(:each)
84
84
  subject
85
85
  end
86
86
 
@@ -98,12 +98,12 @@ describe Algebra::Union, '#optimize' do
98
98
  end
99
99
 
100
100
  it 'does not execute left_body#each' do
101
- left_body.should_not_receive(:each)
101
+ expect(left_body).not_to receive(:each)
102
102
  subject
103
103
  end
104
104
 
105
105
  it 'does not execute right_body#each' do
106
- right_body.should_not_receive(:each)
106
+ expect(right_body).not_to receive(:each)
107
107
  subject
108
108
  end
109
109
 
@@ -124,14 +124,14 @@ describe Algebra::Union, '#optimize' do
124
124
 
125
125
  it 'does not execute left_body#each' do
126
126
  pending 'TODO: should only compare left and right with #eql? if they are materialized' do
127
- left_body.should_not_receive(:each)
127
+ expect(left_body).to_not receive(:each)
128
128
  subject
129
129
  end
130
130
  end
131
131
 
132
132
  it 'does not execute right_body#each' do
133
133
  pending 'TODO: should only compare left and right with #eql? if they are materialized' do
134
- right_body.should_not_receive(:each)
134
+ expect(right_body).to_not receive(:each)
135
135
  subject
136
136
  end
137
137
  end
@@ -153,13 +153,13 @@ describe Algebra::Union, '#optimize' do
153
153
 
154
154
  it 'executes left_body#each' do
155
155
  pending 'only receive #each once'
156
- left_body.should_receive(:each)
156
+ expect(left_body).to receive(:each)
157
157
  subject
158
158
  end
159
159
 
160
160
  it 'executes right_body#each' do
161
161
  pending 'only receive #each once'
162
- right_body.should_receive(:each)
162
+ expect(right_body).to receive(:each)
163
163
  subject
164
164
  end
165
165
 
@@ -173,12 +173,12 @@ describe Algebra::Union, '#optimize' do
173
173
  it { should be(object) }
174
174
 
175
175
  it 'executes left_body#each' do
176
- left_body.should_receive(:each)
176
+ expect(left_body).to receive(:each)
177
177
  subject
178
178
  end
179
179
 
180
180
  it 'executes right_body#each' do
181
- right_body.should_receive(:each)
181
+ expect(right_body).to receive(:each)
182
182
  subject
183
183
  end
184
184
 
@@ -18,7 +18,7 @@ describe Function, '#optimize' do
18
18
  end
19
19
 
20
20
  it 'calls self.class.optimizer' do
21
- described_class.should_receive(:optimizer).and_return(nil)
21
+ expect(described_class).to receive(:optimizer).and_return(nil)
22
22
  subject
23
23
  end
24
24
 
@@ -8,8 +8,8 @@ describe Relation::Operation::Limit, '#optimize' do
8
8
  let(:body) { LazyEnumerable.new([[1], [2], [3]]) }
9
9
  let(:relation) { Relation.new([[:id, Integer]], body) }
10
10
  let(:directions) { [relation[:id]] }
11
- let(:order) { relation.sort_by { directions } }
12
- let(:operand) { order }
11
+ let(:sorted) { relation.sort_by { directions } }
12
+ let(:operand) { sorted }
13
13
  let(:limit) { 1 }
14
14
  let(:object) { described_class.new(operand, limit) }
15
15
 
@@ -23,30 +23,30 @@ describe Relation::Operation::Limit, '#optimize' do
23
23
  end
24
24
 
25
25
  it 'does not execute body#each' do
26
- body.should_not_receive(:each)
26
+ expect(body).not_to receive(:each)
27
27
  subject
28
28
  end
29
29
 
30
30
  it_should_behave_like 'an optimize method'
31
31
  end
32
32
 
33
- context 'containing an order operation' do
33
+ context 'containing a sorted operation' do
34
34
  it { should be(object) }
35
35
 
36
36
  it 'does not execute body#each' do
37
- body.should_not_receive(:each)
37
+ expect(body).not_to receive(:each)
38
38
  subject
39
39
  end
40
40
 
41
41
  it_should_behave_like 'an optimize method'
42
42
  end
43
43
 
44
- context 'containing an optimizable order operation' do
45
- let(:operand) { order.rename({}) }
44
+ context 'containing an optimizable sorted operation' do
45
+ let(:operand) { sorted.rename({}) }
46
46
 
47
47
  it { should be_kind_of(described_class) }
48
48
 
49
- its(:operand) { should be(order) }
49
+ its(:operand) { should be(sorted) }
50
50
 
51
51
  its(:limit) { should == 1 }
52
52
 
@@ -55,7 +55,7 @@ describe Relation::Operation::Limit, '#optimize' do
55
55
  end
56
56
 
57
57
  it 'does not execute body#each' do
58
- body.should_not_receive(:each)
58
+ expect(body).not_to receive(:each)
59
59
  subject
60
60
  end
61
61
 
@@ -63,12 +63,12 @@ describe Relation::Operation::Limit, '#optimize' do
63
63
  end
64
64
 
65
65
  context 'containing a more restrictive object operation' do
66
- let(:operand) { order.take(5) }
67
- let(:limit) { 10 }
66
+ let(:operand) { sorted.take(5) }
67
+ let(:limit) { 10 }
68
68
 
69
69
  it { should be_kind_of(described_class) }
70
70
 
71
- its(:operand) { should be(order) }
71
+ its(:operand) { should be(sorted) }
72
72
 
73
73
  it 'uses the more restrictive object' do
74
74
  expect(subject.limit).to be(5)
@@ -79,7 +79,7 @@ describe Relation::Operation::Limit, '#optimize' do
79
79
  end
80
80
 
81
81
  it 'does not execute body#each' do
82
- body.should_not_receive(:each)
82
+ expect(body).not_to receive(:each)
83
83
  subject
84
84
  end
85
85
 
@@ -87,12 +87,12 @@ describe Relation::Operation::Limit, '#optimize' do
87
87
  end
88
88
 
89
89
  context 'containing a less restrictive object operation' do
90
- let(:operand) { order.take(10) }
91
- let(:limit) { 5 }
90
+ let(:operand) { sorted.take(10) }
91
+ let(:limit) { 5 }
92
92
 
93
93
  it { should be_kind_of(described_class) }
94
94
 
95
- its(:operand) { should be(order) }
95
+ its(:operand) { should be(sorted) }
96
96
 
97
97
  it 'uses the more restrictive object' do
98
98
  expect(subject.limit).to be(5)
@@ -103,7 +103,7 @@ describe Relation::Operation::Limit, '#optimize' do
103
103
  end
104
104
 
105
105
  it 'does not execute body#each' do
106
- body.should_not_receive(:each)
106
+ expect(body).not_to receive(:each)
107
107
  subject
108
108
  end
109
109
 
@@ -111,8 +111,8 @@ describe Relation::Operation::Limit, '#optimize' do
111
111
  end
112
112
 
113
113
  context 'containing a similar object operation' do
114
- let(:operand) { order.take(10) }
115
- let(:limit) { 10 }
114
+ let(:operand) { sorted.take(10) }
115
+ let(:limit) { 10 }
116
116
 
117
117
  it { should be(operand) }
118
118
 
@@ -121,7 +121,7 @@ describe Relation::Operation::Limit, '#optimize' do
121
121
  end
122
122
 
123
123
  it 'does not execute body#each' do
124
- body.should_not_receive(:each)
124
+ expect(body).not_to receive(:each)
125
125
  subject
126
126
  end
127
127
 
@@ -8,45 +8,45 @@ describe Relation::Operation::Offset, '#optimize' do
8
8
  let(:body) { LazyEnumerable.new([[1], [2], [3]]) }
9
9
  let(:relation) { Relation.new([[:id, Integer]], body) }
10
10
  let(:directions) { [relation[:id]] }
11
- let(:order) { relation.sort_by { directions } }
12
- let(:operand) { order }
11
+ let(:sorted) { relation.sort_by { directions } }
12
+ let(:operand) { sorted }
13
13
  let(:offset) { 1 }
14
14
  let(:object) { described_class.new(operand, offset) }
15
15
 
16
16
  context 'with an object of 0' do
17
17
  let(:offset) { 0 }
18
18
 
19
- it { should be(order) }
19
+ it { should be(sorted) }
20
20
 
21
21
  it 'returns an equivalent relation to the unoptimized operation' do
22
22
  should == object
23
23
  end
24
24
 
25
25
  it 'does not execute body#each' do
26
- body.should_not_receive(:each)
26
+ expect(body).not_to receive(:each)
27
27
  subject
28
28
  end
29
29
 
30
30
  it_should_behave_like 'an optimize method'
31
31
  end
32
32
 
33
- context 'containing an order operation' do
33
+ context 'containing a sorted operation' do
34
34
  it { should be(object) }
35
35
 
36
36
  it 'does not execute body#each' do
37
- body.should_not_receive(:each)
37
+ expect(body).not_to receive(:each)
38
38
  subject
39
39
  end
40
40
 
41
41
  it_should_behave_like 'an optimize method'
42
42
  end
43
43
 
44
- context 'containing an optimizable order operation' do
45
- let(:operand) { order.rename({}) }
44
+ context 'containing an optimizable sorted operation' do
45
+ let(:operand) { sorted.rename({}) }
46
46
 
47
47
  it { should be_kind_of(described_class) }
48
48
 
49
- its(:operand) { should be(order) }
49
+ its(:operand) { should be(sorted) }
50
50
 
51
51
  its(:offset) { should == 1 }
52
52
 
@@ -55,7 +55,7 @@ describe Relation::Operation::Offset, '#optimize' do
55
55
  end
56
56
 
57
57
  it 'does not execute body#each' do
58
- body.should_not_receive(:each)
58
+ expect(body).not_to receive(:each)
59
59
  subject
60
60
  end
61
61
 
@@ -63,12 +63,12 @@ describe Relation::Operation::Offset, '#optimize' do
63
63
  end
64
64
 
65
65
  context 'containing an object operation' do
66
- let(:operand) { order.drop(5) }
67
- let(:offset) { 10 }
66
+ let(:operand) { sorted.drop(5) }
67
+ let(:offset) { 10 }
68
68
 
69
69
  it { should be_kind_of(described_class) }
70
70
 
71
- its(:operand) { should be(order) }
71
+ its(:operand) { should be(sorted) }
72
72
 
73
73
  it 'adds the object of the operations' do
74
74
  expect(subject.offset).to be(15)
@@ -79,7 +79,7 @@ describe Relation::Operation::Offset, '#optimize' do
79
79
  end
80
80
 
81
81
  it 'does not execute body#each' do
82
- body.should_not_receive(:each)
82
+ expect(body).not_to receive(:each)
83
83
  subject
84
84
  end
85
85