1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

deprecating the update method in favor of compile_update

This commit is contained in:
Aaron Patterson 2010-12-02 14:31:37 -08:00
parent baa660f62b
commit a8521641d5
5 changed files with 28 additions and 25 deletions

View file

@ -9,6 +9,9 @@
* Calls to `insert` are deprecated. Please use `compile_insert` then call
`to_sql` on the resulting object and execute that SQL.
* Calls to `update` are deprecated. Please use `compile_update` then call
`to_sql` on the resulting object and execute that SQL.
== 2.0.6 12/01/2010
* Bug Fixes

View file

@ -2,8 +2,7 @@ module Arel
###
# FIXME hopefully we can remove this
module Crud
# FIXME: this method should go away
def update values
def compile_update values
um = UpdateManager.new @engine
if Nodes::SqlLiteral === values
@ -16,7 +15,19 @@ module Arel
um.take @ast.limit
um.order(*@ast.orders)
um.wheres = @ctx.wheres
um
end
# FIXME: this method should go away
def update values
if $VERBOSE
warn <<-eowarn
update (#{caller.first}) is deprecated and will be removed in ARel 2.2.0. Please
switch to `compile_update`
eowarn
end
um = compile_update values
@engine.connection.update um.to_sql, 'AREL'
end

View file

@ -47,10 +47,8 @@ module Arel
table = Table.new :users
fc = FakeCrudder.new
fc.from table
fc.update [[table[:id], 'foo']]
fc.engine.calls.find { |method, _|
method == :update
}.wont_be_nil
stmt = fc.compile_update [[table[:id], 'foo']]
assert_instance_of Arel::UpdateManager, stmt
end
end

View file

@ -312,7 +312,6 @@ module Arel
manager.join_sql.must_be_like %{
INNER JOIN "users" "users_2" "users"."id" = "users_2"."id"
}
manager.joins(manager).must_equal manager.join_sql
end
it 'returns outer join sql' do
@ -323,7 +322,6 @@ module Arel
manager.join_sql.must_be_like %{
LEFT OUTER JOIN "users" "users_2" "users"."id" = "users_2"."id"
}
manager.joins(manager).must_equal manager.join_sql
end
it 'returns string join sql' do
@ -331,7 +329,6 @@ module Arel
manager = Arel::SelectManager.new Table.engine
manager.from Nodes::StringJoin.new(table, 'hello')
manager.join_sql.must_be_like %{ 'hello' }
manager.joins(manager).must_equal manager.join_sql
end
it 'returns nil join sql' do
@ -436,9 +433,9 @@ module Arel
manager = Arel::SelectManager.new engine
manager.from table
manager.take 1
manager.update(SqlLiteral.new('foo = bar'))
stmt = manager.compile_update(SqlLiteral.new('foo = bar'))
engine.executed.last.must_be_like %{
stmt.to_sql.must_be_like %{
UPDATE "users" SET foo = bar
WHERE "users"."id" IN (SELECT "users"."id" FROM "users" LIMIT 1)
}
@ -450,9 +447,9 @@ module Arel
manager = Arel::SelectManager.new engine
manager.from table
manager.order :foo
manager.update(SqlLiteral.new('foo = bar'))
stmt = manager.compile_update(SqlLiteral.new('foo = bar'))
engine.executed.last.must_be_like %{
stmt.to_sql.must_be_like %{
UPDATE "users" SET foo = bar
WHERE "users"."id" IN (SELECT "users"."id" FROM "users" ORDER BY foo)
}
@ -463,9 +460,9 @@ module Arel
table = Table.new :users
manager = Arel::SelectManager.new engine
manager.from table
manager.update(SqlLiteral.new('foo = bar'))
stmt = manager.compile_update(SqlLiteral.new('foo = bar'))
engine.executed.last.must_be_like %{ UPDATE "users" SET foo = bar }
stmt.to_sql.must_be_like %{ UPDATE "users" SET foo = bar }
end
it 'copies where clauses' do
@ -474,9 +471,9 @@ module Arel
manager = Arel::SelectManager.new engine
manager.where table[:id].eq 10
manager.from table
manager.update(table[:id] => 1)
stmt = manager.compile_update(table[:id] => 1)
engine.executed.last.must_be_like %{
stmt.to_sql.must_be_like %{
UPDATE "users" SET "id" = 1 WHERE "users"."id" = 10
}
end
@ -486,9 +483,9 @@ module Arel
table = Table.new :users
manager = Arel::SelectManager.new engine
manager.from table
manager.update(table[:id] => 1)
stmt = manager.compile_update(table[:id] => 1)
engine.executed.last.must_be_like %{
stmt.to_sql.must_be_like %{
UPDATE "users" SET "id" = 1
}
end

View file

@ -48,12 +48,6 @@ module Arel
end
describe 'backwards compat' do
describe 'joins' do
it 'returns nil' do
@relation.joins(nil).must_equal nil
end
end
describe 'join' do
it 'noops on nil' do
mgr = @relation.join nil