From 9e05f7e01be3840b1a66bbda0292f97740f6947e Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 2 Dec 2010 15:45:00 -0800 Subject: deprecating the "delete" method in favor of compile_delete --- History.txt | 3 +++ lib/arel/crud.rb | 14 ++++++++++++-- test/test_crud.rb | 6 ++---- test/test_select_manager.rb | 8 ++++---- 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 -- cgit v1.2.3