Class: Takagi::Middleware::Caching
- Inherits:
-
Object
- Object
- Takagi::Middleware::Caching
- Defined in:
- lib/takagi/middleware/caching.rb
Instance Method Summary collapse
- #call(request) ⇒ Object
-
#initialize ⇒ Caching
constructor
A new instance of Caching.
Constructor Details
#initialize ⇒ Caching
Returns a new instance of Caching.
6 7 8 9 |
# File 'lib/takagi/middleware/caching.rb', line 6 def initialize @cache = {} @mutex = Mutex.new end |
Instance Method Details
#call(request) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/takagi/middleware/caching.rb', line 11 def call(request) cached_response = @mutex.synchronize { @cache[request.uri.path] } return cached_response if cached_response response = yield request @mutex.synchronize { @cache[request.uri.path] = response } response end |