aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/algebra/relations/writes.rb7
-rw-r--r--spec/algebra/unit/relations/relation_spec.rb21
2 files changed, 17 insertions, 11 deletions
diff --git a/lib/arel/algebra/relations/writes.rb b/lib/arel/algebra/relations/writes.rb
index 8cf7a7cdad..7df6d861a8 100644
--- a/lib/arel/algebra/relations/writes.rb
+++ b/lib/arel/algebra/relations/writes.rb
@@ -1,8 +1,5 @@
module Arel
class Action < Compound
- def == other
- super || self.class === other && @relation == other.relation
- end
end
class Deletion < Action
@@ -27,10 +24,6 @@ module Arel
engine.create(self)
end
- def == other
- super && @record == other.record
- end
-
def eval
unoperated_rows + [Row.new(self, record.values.collect(&:value))]
end
diff --git a/spec/algebra/unit/relations/relation_spec.rb b/spec/algebra/unit/relations/relation_spec.rb
index d08c38acd5..a7e14e6be5 100644
--- a/spec/algebra/unit/relations/relation_spec.rb
+++ b/spec/algebra/unit/relations/relation_spec.rb
@@ -182,7 +182,10 @@ module Arel
describe '#delete' do
it 'manufactures a deletion relation' do
Session.start do |s|
- s.should_receive(:delete).with(Deletion.new(@relation))
+ s.should_receive(:delete) do |delete|
+ delete.relation.should == @relation
+ delete.should be_kind_of Deletion
+ end
@relation.delete
end
end
@@ -191,8 +194,13 @@ module Arel
describe '#insert' do
it 'manufactures an insertion relation' do
Session.start do |s|
- record = { @relation[:name] => 'carl' }
- s.should_receive(:create).with(Insert.new(@relation, record))
+ record = { @relation[:name] => Value.new('carl', @relation) }
+ s.should_receive(:create) do |insert|
+ insert.relation.should == @relation
+ insert.record.should == record
+ insert.should be_kind_of Insert
+ insert
+ end
@relation.insert(record)
end
end
@@ -202,7 +210,12 @@ module Arel
it 'manufactures an update relation' do
Session.start do |s|
assignments = { @relation[:name] => Value.new('bob', @relation) }
- s.should_receive(:update).with(Update.new(@relation, assignments))
+ s.should_receive(:update) do |update|
+ update.relation.should == @relation
+ update.assignments.should == assignments
+ update.should be_kind_of Update
+ update
+ end
@relation.update(assignments)
end
end