From f656bb301a43fe441af0039e4fafe40a7faa62f8 Mon Sep 17 00:00:00 2001
From: Ryuta Kamizono <kamipo@gmail.com>
Date: Fri, 19 Apr 2019 23:01:24 +0900
Subject: Deprecate `collection_cache_key` which is private API

The `collection_cache_key` is private API for a long time, but I've
maintained it in #35848 since it is mentioned in the doc
(https://github.com/rails/rails/pull/35848#discussion_r272011475).

The doc has removed at 1da9a7e4, so there is no longer a reason to
maintain that private API.
---
 activerecord/lib/active_record/integration.rb        | 4 +++-
 activerecord/lib/active_record/relation.rb           | 4 +++-
 activerecord/test/cases/collection_cache_key_test.rb | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/activerecord/lib/active_record/integration.rb b/activerecord/lib/active_record/integration.rb
index c745bc1330..810b6884f1 100644
--- a/activerecord/lib/active_record/integration.rb
+++ b/activerecord/lib/active_record/integration.rb
@@ -1,6 +1,7 @@
 # frozen_string_literal: true
 
 require "active_support/core_ext/string/filters"
+require "active_support/deprecation"
 
 module ActiveRecord
   module Integration
@@ -162,8 +163,9 @@ module ActiveRecord
       end
 
       def collection_cache_key(collection = all, timestamp_column = :updated_at) # :nodoc:
-        collection.compute_cache_key(timestamp_column)
+        collection.send(:compute_cache_key, timestamp_column)
       end
+      deprecate :collection_cache_key
     end
 
     private
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 8eb71e6454..b3a1b69293 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -310,7 +310,7 @@ module ActiveRecord
     #   Product.where("name like ?", "%Game%").cache_key(:last_reviewed_at)
     def cache_key(timestamp_column = :updated_at)
       @cache_keys ||= {}
-      @cache_keys[timestamp_column] ||= @klass.collection_cache_key(self, timestamp_column)
+      @cache_keys[timestamp_column] ||= compute_cache_key(timestamp_column)
     end
 
     def compute_cache_key(timestamp_column = :updated_at) # :nodoc:
@@ -323,6 +323,7 @@ module ActiveRecord
         "#{key}-#{compute_cache_version(timestamp_column)}"
       end
     end
+    private :compute_cache_key
 
     # Returns a cache version that can be used together with the cache key to form
     # a recyclable caching scheme. The cache version is built with the number of records
@@ -382,6 +383,7 @@ module ActiveRecord
         "#{size}"
       end
     end
+    private :compute_cache_version
 
     # Scope all queries to the current scope.
     #
diff --git a/activerecord/test/cases/collection_cache_key_test.rb b/activerecord/test/cases/collection_cache_key_test.rb
index f07f3c42e6..f01bc0d7f1 100644
--- a/activerecord/test/cases/collection_cache_key_test.rb
+++ b/activerecord/test/cases/collection_cache_key_test.rb
@@ -13,7 +13,9 @@ module ActiveRecord
     fixtures :developers, :projects, :developers_projects, :topics, :comments, :posts
 
     test "collection_cache_key on model" do
-      assert_match(/\Adevelopers\/query-(\h+)-(\d+)-(\d+)\z/, Developer.collection_cache_key)
+      assert_deprecated do
+        assert_match(/\Adevelopers\/query-(\h+)-(\d+)-(\d+)\z/, Developer.collection_cache_key)
+      end
     end
 
     test "cache_key for relation" do
-- 
cgit v1.2.3