axiom-optimizer 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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