class DHS::Interceptors::RequestCycleCache::Interceptor

Constants

CACHED_METHODS
VERSION

Public Instance Methods

before_request() click to toggle source
# File lib/dhs/interceptors/request_cycle_cache/interceptor.rb, line 15
def before_request
  request.options = {
    cache: {
      expires_in: 5.minutes,
      race_condition_ttl: 5.seconds,
      key: cache_key_for(request),
      methods: CACHED_METHODS,
      use: DHS.config.request_cycle_cache
    }
  }.merge(request.options)
end

Private Instance Methods

cache_key_for(request) click to toggle source
# File lib/dhs/interceptors/request_cycle_cache/interceptor.rb, line 29
def cache_key_for(request)
  [
    "DHS_REQUEST_CYCLE_CACHE(v#{VERSION})",
    request.method.upcase,
    [request.url, request.params.presence].compact.join('?'),
    "REQUEST=#{DHS::Interceptors::RequestCycleCache::ThreadRegistry.request_id}",
    "HEADERS=#{request.headers.hash}"
  ].join(' ')
end