Class: SiteInspector::DiskCache

Inherits:
Object
  • Object
show all
Defined in:
lib/site-inspector/disk_cache.rb

Instance Method Summary collapse

Constructor Details

#initialize(dir = nil, replace = nil) ⇒ DiskCache

Returns a new instance of DiskCache.



3
4
5
6
7
# File 'lib/site-inspector/disk_cache.rb', line 3

def initialize(dir = nil, replace = nil)
  @dir     = dir || ENV['CACHE']
  @replace = replace || ENV['CACHE_REPLACE']
  @memory  = {}
end

Instance Method Details

#get(request) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/site-inspector/disk_cache.rb', line 9

def get(request)
  return unless File.exist?(path(request))
  return @memory[request] if @memory[request]

  if @replace
    FileUtils.rm(path(request))
    nil
  else
    begin
      contents = File.read(path(request))
      Marshal.load(contents)
    rescue ArgumentError
      FileUtils.rm(path(request))
      nil
    end
  end
end

#set(request, response) ⇒ Object



27
28
29
30
# File 'lib/site-inspector/disk_cache.rb', line 27

def set(request, response)
  File.write(path(request), Marshal.dump(response))
  @memory[request] = response
end