typhoeus: add a cache store for successful requests
This commit is contained in:
parent
f7c65e8b57
commit
a0ae1afb45
2 changed files with 61 additions and 0 deletions
21
app/lib/typhoeus/cache/successful_requests_rails_cache.rb
vendored
Normal file
21
app/lib/typhoeus/cache/successful_requests_rails_cache.rb
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
module Typhoeus
|
||||
module Cache
|
||||
# Cache successful Typhoeus requests in the Rails cache
|
||||
# (but don’t cache failed requests).
|
||||
#
|
||||
# Usage:
|
||||
# Typhoeus.config.cache = Typhoeus::Cache::SuccessfulRequestsRailsCache.new
|
||||
# Typhoeus.get('http://exemple.com/api', cache_ttl: 1.day)
|
||||
class SuccessfulRequestsRailsCache
|
||||
def get(request)
|
||||
::Rails.cache.read(request)
|
||||
end
|
||||
|
||||
def set(request, response)
|
||||
if response&.success?
|
||||
::Rails.cache.write(request, response, expires_in: request.cache_ttl)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue