class HTTPX::Plugins::ResponseCache::Store

  1. lib/httpx/plugins/response_cache/store.rb
Superclass: Object

Implementation of a thread-safe in-memory cache store.

Methods

Public Class

  1. new

Public Instance

  1. clear
  2. get
  3. set

Public Class methods

new()
[show source]
   # File lib/httpx/plugins/response_cache/store.rb
 7 def initialize
 8   @store = {}
 9   @store_mutex = Thread::Mutex.new
10 end

Public Instance methods

clear()
[show source]
   # File lib/httpx/plugins/response_cache/store.rb
12 def clear
13   @store_mutex.synchronize { @store.clear }
14 end
get(request)
[show source]
   # File lib/httpx/plugins/response_cache/store.rb
16 def get(request)
17   @store_mutex.synchronize do
18     @store[request.response_cache_key]
19   end
20 end
set(request, response)
[show source]
   # File lib/httpx/plugins/response_cache/store.rb
22 def set(request, response)
23   @store_mutex.synchronize do
24     cached_response = @store[request.response_cache_key]
25 
26     cached_response.close if cached_response
27 
28     @store[request.response_cache_key] = response
29   end
30 end