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