20: def self.expand_cache_key(key, namespace = nil)
21: expanded_cache_key = namespace ? "#{namespace}/" : ""
22:
23: if ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]
24: expanded_cache_key << "#{ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]}/"
25: end
26:
27: expanded_cache_key << case
28: when key.respond_to?(:cache_key)
29: key.cache_key
30: when key.is_a?(Array)
31: key.collect { |element| expand_cache_key(element) }.to_param
32: when key.respond_to?(:to_param)
33: key.to_param
34: end
35:
36: expanded_cache_key
37: end