From 0bef23e630f62e38f20b5ae1d1d5dbfb087050ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?=
 <rafaelmfranca@gmail.com>
Date: Mon, 14 Jan 2019 16:15:09 -0500
Subject: Remove ability to specify a timestamp name for `#cache_key`

---
 activerecord/CHANGELOG.md                     |  4 ++++
 activerecord/lib/active_record/integration.rb | 15 +++------------
 activerecord/lib/active_record/timestamp.rb   |  7 +++----
 activerecord/test/cases/integration_test.rb   | 15 ---------------
 4 files changed, 10 insertions(+), 31 deletions(-)

(limited to 'activerecord')

diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 0338a8c061..7ef1a200f0 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,7 @@
+*   Remove ability to specify a timestamp name for `#cache_key`.
+
+    *Rafael Mendonça França*
+
 *   Remove deprecated `ActiveRecord::Migrator.migrations_path=`.
 
     *Rafael Mendonça França*
diff --git a/activerecord/lib/active_record/integration.rb b/activerecord/lib/active_record/integration.rb
index 90fb10a1f1..fa6f0d36ec 100644
--- a/activerecord/lib/active_record/integration.rb
+++ b/activerecord/lib/active_record/integration.rb
@@ -61,23 +61,14 @@ module ActiveRecord
     #
     #   Product.cache_versioning = false
     #   Product.find(5).cache_key  # => "products/5-20071224150000" (updated_at available)
-    def cache_key(*timestamp_names)
+    def cache_key
       if new_record?
         "#{model_name.cache_key}/new"
       else
-        if cache_version && timestamp_names.none?
+        if cache_version
           "#{model_name.cache_key}/#{id}"
         else
-          timestamp = if timestamp_names.any?
-            ActiveSupport::Deprecation.warn(<<-MSG.squish)
-              Specifying a timestamp name for #cache_key has been deprecated in favor of
-              the explicit #cache_version method that can be overwritten.
-            MSG
-
-            max_updated_column_timestamp(timestamp_names)
-          else
-            max_updated_column_timestamp
-          end
+          timestamp = max_updated_column_timestamp
 
           if timestamp
             timestamp = timestamp.utc.to_s(cache_timestamp_format)
diff --git a/activerecord/lib/active_record/timestamp.rb b/activerecord/lib/active_record/timestamp.rb
index e19077eb88..2345db7138 100644
--- a/activerecord/lib/active_record/timestamp.rb
+++ b/activerecord/lib/active_record/timestamp.rb
@@ -133,11 +133,10 @@ module ActiveRecord
       self.class.send(:current_time_from_proper_timezone)
     end
 
-    def max_updated_column_timestamp(timestamp_names = timestamp_attributes_for_update_in_model)
-      timestamp_names
-        .map { |attr| self[attr] }
+    def max_updated_column_timestamp
+      timestamp_attributes_for_update_in_model
+        .map { |attr| self[attr]&.to_time }
         .compact
-        .map(&:to_time)
         .max
     end
 
diff --git a/activerecord/test/cases/integration_test.rb b/activerecord/test/cases/integration_test.rb
index 5687afbc71..4185e8d682 100644
--- a/activerecord/test/cases/integration_test.rb
+++ b/activerecord/test/cases/integration_test.rb
@@ -191,21 +191,6 @@ class IntegrationTest < ActiveRecord::TestCase
     end
   end
 
-  def test_named_timestamps_for_cache_key
-    assert_deprecated do
-      owner = owners(:blackbeard)
-      assert_equal "owners/#{owner.id}-#{owner.happy_at.utc.to_s(:usec)}", owner.cache_key(:updated_at, :happy_at)
-    end
-  end
-
-  def test_cache_key_when_named_timestamp_is_nil
-    assert_deprecated do
-      owner = owners(:blackbeard)
-      owner.happy_at = nil
-      assert_equal "owners/#{owner.id}", owner.cache_key(:happy_at)
-    end
-  end
-
   def test_cache_key_is_stable_with_versioning_on
     with_cache_versioning do
       developer = Developer.first
-- 
cgit v1.2.3