module AbstractController::Caching::Fragments

def combined_fragment_cache_key(key)

with the specified +key+ value.
followed by any controller-wide key prefix values, ending
followed by ENV["RAILS_CACHE_ID"] or ENV["RAILS_APP_VERSION"] if set,
cached fragment. All keys begin with :views,
a key array suitable for use in reading, writing, or expiring a
Given a key (as described in +expire_fragment+), returns
def combined_fragment_cache_key(key)
  head = self.class.fragment_cache_keys.map { |k| instance_exec(&k) }
  tail = key.is_a?(Hash) ? url_for(key).split("://").last : key
  cache_key = [:views, ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"], head, tail]
  cache_key.flatten!(1)
  cache_key.compact!
  cache_key
end