Permalink
Browse files

Revert "Fix expanding cache key for single element arrays"

This reverts commit abe915f.

This broke all existing keys and it's wrong anyway. The array is just there as a convenience option for building the string. It's intentional that [ "stuff"] and "stuff" generates the same key.
  • Loading branch information...
dhh committed Jan 27, 2012
1 parent 69816a8 commit 83dbef6074269c3eb742c0506476b3679707dedd
Showing with 8 additions and 16 deletions.
  1. +1 −1 activesupport/lib/active_support/cache.rb
  2. +7 −15 activesupport/test/caching_test.rb
@@ -91,7 +91,7 @@ def expand_cache_key(key, namespace = nil)
def retrieve_cache_key(key)
case
when key.respond_to?(:cache_key) then key.cache_key
when key.is_a?(Array) then ['Array', *key.map { |element| retrieve_cache_key(element) }].to_param
when key.is_a?(Array) then key.map { |element| retrieve_cache_key(element) }.to_param
else key.to_param
end.to_s
end
@@ -4,19 +4,19 @@
class CacheKeyTest < ActiveSupport::TestCase
def test_expand_cache_key
assert_equal 'Array/1/2/true', ActiveSupport::Cache.expand_cache_key([1, '2', true])
assert_equal 'name/Array/1/2/true', ActiveSupport::Cache.expand_cache_key([1, '2', true], :name)
assert_equal '1/2/true', ActiveSupport::Cache.expand_cache_key([1, '2', true])
assert_equal 'name/1/2/true', ActiveSupport::Cache.expand_cache_key([1, '2', true], :name)
end
def test_expand_cache_key_with_rails_cache_id
begin
ENV['RAILS_CACHE_ID'] = 'c99'
assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key(:foo)
assert_equal 'c99/Array/foo', ActiveSupport::Cache.expand_cache_key([:foo])
assert_equal 'c99/Array/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar])
assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key([:foo])
assert_equal 'c99/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar])
assert_equal 'nm/c99/foo', ActiveSupport::Cache.expand_cache_key(:foo, :nm)
assert_equal 'nm/c99/Array/foo', ActiveSupport::Cache.expand_cache_key([:foo], :nm)
assert_equal 'nm/c99/Array/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar], :nm)
assert_equal 'nm/c99/foo', ActiveSupport::Cache.expand_cache_key([:foo], :nm)
assert_equal 'nm/c99/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar], :nm)
ensure
ENV['RAILS_CACHE_ID'] = nil
end
@@ -55,7 +55,7 @@ def test_expand_cache_key_array_with_something_that_responds_to_cache_key
def key.cache_key
:foo_key
end
assert_equal 'Array/foo_key', ActiveSupport::Cache.expand_cache_key([key])
assert_equal 'foo_key', ActiveSupport::Cache.expand_cache_key([key])
end
def test_expand_cache_key_of_nil
@@ -69,14 +69,6 @@ def test_expand_cache_key_of_false
def test_expand_cache_key_of_true
assert_equal 'true', ActiveSupport::Cache.expand_cache_key(true)
end
def test_expand_cache_key_of_one_element_array_different_than_key_of_element
element = 'foo'
array = [element]
element_cache_key = ActiveSupport::Cache.expand_cache_key(element)
array_cache_key = ActiveSupport::Cache.expand_cache_key(array)
assert_not_equal element_cache_key, array_cache_key
end
end
class CacheStoreSettingTest < ActiveSupport::TestCase

0 comments on commit 83dbef6

Please sign in to comment.