From e7381d289e4f8751dcec9553dcb4d32153bd922b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?=
 <rafaelmfranca@gmail.com>
Date: Thu, 29 Dec 2016 16:01:16 -0500
Subject: Remove deprecated conditions parameter from #delete_all

---
 activerecord/CHANGELOG.md                  |  2 +-
 activerecord/lib/active_record/relation.rb | 30 +++++++++++-------------------
 activerecord/test/cases/relations_test.rb  |  6 ------
 3 files changed, 12 insertions(+), 26 deletions(-)

diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 39995c51be..84af6e0109 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,4 +1,4 @@
-*   Remove deprecated conditions parameter from `#destroy_all`.
+*   Remove deprecated conditions parameter from `#destroy_all` and `#delete_all`.
 
     *Rafael Mendonça França*
 
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 9a1312b883..a4b5eacfbf 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -495,7 +495,7 @@ module ActiveRecord
     #
     #   Post.limit(100).delete_all
     #   # => ActiveRecord::ActiveRecordError: delete_all doesn't support limit
-    def delete_all(conditions = nil)
+    def delete_all
       invalid_methods = INVALID_METHODS_FOR_DELETE_ALL.select do |method|
         value = get_value(method)
         SINGLE_VALUE_METHODS.include?(method) ? value : value.any?
@@ -504,27 +504,19 @@ module ActiveRecord
         raise ActiveRecordError.new("delete_all doesn't support #{invalid_methods.join(', ')}")
       end
 
-      if conditions
-        ActiveSupport::Deprecation.warn(<<-MESSAGE.squish)
-          Passing conditions to delete_all is deprecated and will be removed in Rails 5.1.
-          To achieve the same use where(conditions).delete_all.
-        MESSAGE
-        where(conditions).delete_all
-      else
-        stmt = Arel::DeleteManager.new
-        stmt.from(table)
+      stmt = Arel::DeleteManager.new
+      stmt.from(table)
 
-        if has_join_values?
-          @klass.connection.join_to_delete(stmt, arel, arel_attribute(primary_key))
-        else
-          stmt.wheres = arel.constraints
-        end
+      if has_join_values?
+        @klass.connection.join_to_delete(stmt, arel, arel_attribute(primary_key))
+      else
+        stmt.wheres = arel.constraints
+      end
 
-        affected = @klass.connection.delete(stmt, "SQL", bound_attributes)
+      affected = @klass.connection.delete(stmt, "SQL", bound_attributes)
 
-        reset
-        affected
-      end
+      reset
+      affected
     end
 
     # Deletes the row with a primary key matching the +id+ argument, using a
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index b91d6ba673..820e0fdae4 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -1011,12 +1011,6 @@ class RelationTest < ActiveRecord::TestCase
     assert ! davids.loaded?
   end
 
-  def test_delete_all_with_conditions_is_deprecated
-    assert_deprecated do
-      assert_difference("Author.count", -1) { Author.delete_all(name: "David") }
-    end
-  end
-
   def test_delete_all_loaded
     davids = Author.where(name: "David")
 
-- 
cgit v1.2.3