aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-12-02 15:45:00 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2010-12-02 15:45:00 -0800
commit9e05f7e01be3840b1a66bbda0292f97740f6947e (patch)
tree3f88658602addf4104dcd3afbd45328e904fe078
parenta8521641d5d7630bba7620ce42fe7456eeff0398 (diff)
downloadrails-9e05f7e01be3840b1a66bbda0292f97740f6947e.tar.gz
rails-9e05f7e01be3840b1a66bbda0292f97740f6947e.tar.bz2
rails-9e05f7e01be3840b1a66bbda0292f97740f6947e.zip
deprecating the "delete" method in favor of compile_delete
-rw-r--r--History.txt3
-rw-r--r--lib/arel/crud.rb14
-rw-r--r--test/test_crud.rb6
-rw-r--r--test/test_select_manager.rb8
4 files changed, 21 insertions, 10 deletions
diff --git a/History.txt b/History.txt
index ddfced9666..1c4f122e2b 100644
--- a/History.txt
+++ b/History.txt
@@ -12,6 +12,9 @@
* Calls to `update` are deprecated. Please use `compile_update` then call
`to_sql` on the resulting object and execute that SQL.
+ * Calls to `delete` are deprecated. Please use `compile_delete` then call
+ `to_sql` on the resulting object and execute that SQL.
+
== 2.0.6 12/01/2010
* Bug Fixes
diff --git a/lib/arel/crud.rb b/lib/arel/crud.rb
index 06883d9ac6..ade1b9f424 100644
--- a/lib/arel/crud.rb
+++ b/lib/arel/crud.rb
@@ -48,11 +48,21 @@ switch to `compile_insert`
@engine.connection.insert compile_insert(values).to_sql
end
- def delete
+ def compile_delete
dm = DeleteManager.new @engine
dm.wheres = @ctx.wheres
dm.from @ctx.froms
- @engine.connection.delete dm.to_sql, 'AREL'
+ dm
+ end
+
+ def delete
+ if $VERBOSE
+ warn <<-eowarn
+delete (#{caller.first}) is deprecated and will be removed in ARel 2.2.0. Please
+switch to `compile_delete`
+ eowarn
+ end
+ @engine.connection.delete compile_delete.to_sql, 'AREL'
end
end
end
diff --git a/test/test_crud.rb b/test/test_crud.rb
index 0a727bce0a..ebe5d68908 100644
--- a/test/test_crud.rb
+++ b/test/test_crud.rb
@@ -57,10 +57,8 @@ module Arel
table = Table.new :users
fc = FakeCrudder.new
fc.from table
- fc.delete
- fc.engine.calls.find { |method, _|
- method == :delete
- }.wont_be_nil
+ stmt = fc.compile_delete
+ assert_instance_of Arel::DeleteManager, stmt
end
end
end
diff --git a/test/test_select_manager.rb b/test/test_select_manager.rb
index ee4341c1ce..0ecc78ce83 100644
--- a/test/test_select_manager.rb
+++ b/test/test_select_manager.rb
@@ -390,9 +390,9 @@ module Arel
table = Table.new :users
manager = Arel::SelectManager.new engine
manager.from table
- manager.delete
+ stmt = manager.compile_delete
- engine.executed.last.must_be_like %{ DELETE FROM "users" }
+ stmt.to_sql.must_be_like %{ DELETE FROM "users" }
end
it "copies where" do
@@ -401,9 +401,9 @@ module Arel
manager = Arel::SelectManager.new engine
manager.from table
manager.where table[:id].eq 10
- manager.delete
+ stmt = manager.compile_delete
- engine.executed.last.must_be_like %{
+ stmt.to_sql.must_be_like %{
DELETE FROM "users" WHERE "users"."id" = 10
}
end