Class: Convertator::Middlewares::FileCacheMiddleware

Inherits:
Convertator::Middleware show all
Defined in:
lib/convertator/middlewares/file_cache_middleware.rb

Constant Summary collapse

DEFAULT_TTL =
3600

Instance Attribute Summary

Attributes inherited from Convertator::Middleware

#prev

Instance Method Summary collapse

Constructor Details

#initialize(file, ttl = DEFAULT_TTL) ⇒ FileCacheMiddleware

Returns a new instance of FileCacheMiddleware.



9
10
11
12
# File 'lib/convertator/middlewares/file_cache_middleware.rb', line 9

def initialize(file, ttl = DEFAULT_TTL)
  @file = file_open(file)
  @ttl = ttl
end

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/convertator/middlewares/file_cache_middleware.rb', line 14

def call
  @file.flock(::File::LOCK_EX)
  if file_zero? || file_old?
    data = @prev.call
    file_write(data.to_json)
  else
    data = JSON.parse(file_read)
  end
  @file.flock(::File::LOCK_UN)
  data
end