29 lines
931 B
Ruby
29 lines
931 B
Ruby
module Typhoeus
|
|
module Cache
|
|
# This module provides a simple way to cache HTTP responses using Dalli.
|
|
class Dalli
|
|
# @example Set Dalli as the Typhoeus cache backend
|
|
# Typhoeus::Config.cache = Typhoeus::Cache::Dalli.new
|
|
#
|
|
# @param [ Dalli::Client ] client
|
|
# A connection to the cache server. Defaults to `Dalli::Client.new`
|
|
# @param [ Hash ] options
|
|
# Options
|
|
# @option options [ Integer ] :default_ttl
|
|
# The default TTL of cached responses in seconds, for requests which do not set a cache_ttl.
|
|
def initialize(client = ::Dalli::Client.new, options = {})
|
|
@client = client
|
|
@default_ttl = options[:default_ttl]
|
|
end
|
|
|
|
def get(request)
|
|
@client.get(request.cache_key)
|
|
end
|
|
|
|
def set(request, response)
|
|
@client.set(request.cache_key, response, request.cache_ttl || @default_ttl)
|
|
end
|
|
end
|
|
end
|
|
end
|