diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-12-02 14:01:08 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-12-02 14:01:08 -0800 |
commit | baa660f62b4fae9197d7b4b6e4bbcf4059d106a8 (patch) | |
tree | 9757fa9803cd4035450f2efe1196cfa8afd4f875 | |
parent | 39ccb8049c87b1fde1b85c6a0d84e0f72e92bac1 (diff) | |
download | rails-baa660f62b4fae9197d7b4b6e4bbcf4059d106a8.tar.gz rails-baa660f62b4fae9197d7b4b6e4bbcf4059d106a8.tar.bz2 rails-baa660f62b4fae9197d7b4b6e4bbcf4059d106a8.zip |
deprecating "insert"
-rw-r--r-- | History.txt | 5 | ||||
-rw-r--r-- | lib/arel/crud.rb | 16 | ||||
-rw-r--r-- | lib/arel/table.rb | 4 | ||||
-rw-r--r-- | test/helper.rb | 2 | ||||
-rw-r--r-- | test/test_table.rb | 12 |
5 files changed, 35 insertions, 4 deletions
diff --git a/History.txt b/History.txt index b77563e0b5..e794edb132 100644 --- a/History.txt +++ b/History.txt @@ -4,6 +4,11 @@ * AST is now Enumerable +* Deprecations + + * Calls to `insert` are deprecated. Please use `compile_insert` 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 b3199e6d38..8de008c09e 100644 --- a/lib/arel/crud.rb +++ b/lib/arel/crud.rb @@ -20,11 +20,21 @@ module Arel @engine.connection.update um.to_sql, 'AREL' end - # FIXME: this method should go away - def insert values + def compile_insert values im = InsertManager.new @engine im.insert values - @engine.connection.insert im.to_sql + im + end + + # FIXME: this method should go away + def insert values + if $VERBOSE + warn <<-eowarn +insert (#{caller.first}) is deprecated and will be removed in ARel 2.2.0. Please +switch to `compile_insert` + eowarn + end + @engine.connection.insert compile_insert(values).to_sql end def delete diff --git a/lib/arel/table.rb b/lib/arel/table.rb index aa23a7d601..ca811debee 100644 --- a/lib/arel/table.rb +++ b/lib/arel/table.rb @@ -108,6 +108,10 @@ module Arel SelectManager.new(@engine) end + def insert_manager + InsertManager.new(@engine) + end + private def attributes_for columns diff --git a/test/helper.rb b/test/helper.rb index 3f9ac22447..f13596f9ec 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -8,6 +8,6 @@ Arel::Table.engine = Arel::Sql::Engine.new(FakeRecord::Base.new) class Object def must_be_like other - self.gsub(/\s+/, ' ').strip.must_equal other.gsub(/\s+/, ' ').strip + gsub(/\s+/, ' ').strip.must_equal other.gsub(/\s+/, ' ').strip end end diff --git a/test/test_table.rb b/test/test_table.rb index 8d37a8eaff..b9998174a1 100644 --- a/test/test_table.rb +++ b/test/test_table.rb @@ -6,6 +6,18 @@ module Arel @relation = Table.new(:users) end + it 'should return an insert manager' do + im = @relation.compile_insert 'VALUES(NULL)' + assert_kind_of Arel::InsertManager, im + assert_equal 'INSERT INTO NULL VALUES(NULL)', im.to_sql + end + + it 'should return IM from insert_manager' do + im = @relation.insert_manager + assert_kind_of Arel::InsertManager, im + assert_equal im.engine, @relation.engine + end + describe 'skip' do it 'should add an offset' do sm = @relation.skip 2 |