module WCC module Media module Cacheable def cache_key return @cache_key if @cache_key key = (headers&.fetch('Etag', nil) if respond_to?(:headers)) key ||= WCC::Media::Cacheable.hash_cache_key(raw) @cache_key = "#{self.class.name}/#{key}" end def self.hash_cache_key(hash) Digest::SHA1.hexdigest(Marshal.dump(hash)) end end end end