Sha256: 8f84c76e3a641e42c839d8ebf830d1657ef8c08e5d4b62318194b425b75b1fe1
Contents?: true
Size: 1.14 KB
Versions: 14
Compression:
Stored size: 1.14 KB
Contents
require 'active_support' class LHS::Record module RequestCycleCache extend ActiveSupport::Concern REQUEST_CYCLE_CACHE_WARNING = "[WARNING] Can't enable LHS::RequestCycleCache as LHC::Caching interceptor is not enabled/configured (see https://github.com/local-ch/lhc/blob/master/docs/interceptors/caching.md#caching-interceptor)!".freeze class Interceptor < LHC::Interceptor VERSION = 1 CACHED_METHODS = [:get].freeze def before_request(request) request.options = request.options.merge({ cache: true, cache_expires_in: 5.minutes, cache_race_condition_ttl: 5.seconds, cache_key: cache_key_for(request), cached_methods: CACHED_METHODS }.merge(request.options)) end private def cache_key_for(request) [ "LHS_REQUEST_CYCLE_CACHE(v#{VERSION})", request.method.upcase, [request.url, request.params.presence].compact.join('?'), "REQUEST=#{LHS::Record::RequestCycleCache::RequestCycleThreadRegistry.request_id}", "HEADERS=#{request.headers.hash}" ].join(' ') end end end end
Version data entries
14 entries across 14 versions & 1 rubygems