class Faraday::HttpCache::Strategies::ByVary

def write(request, response)

Returns:
  • (void) -

Parameters:
  • response (Faraday::HttpCache::Response) -- - instance to be stored.
  • request (Faraday::HttpCache::Request) -- - instance of the executed HTTP request.
def write(request, response)
  vary_cache_key = vary_cache_key_for(request)
  headers = Faraday::Utils::Headers.new(response.payload[:response_headers])
  vary = headers['Vary'].to_s
  cache.write(vary_cache_key, vary)
  response_cache_key = response_cache_key_for(request, vary)
  entry = serialize_object(response.serializable_hash)
  cache.write(response_cache_key, entry)
rescue ::Encoding::UndefinedConversionError => e
  warn "Response could not be serialized: #{e.message}. Try using Marshal to serialize."
  raise e
end