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.



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

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

Instance Method Details

#get(request) ⇒ Object



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

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



29
30
31
32
# File 'lib/site-inspector/disk_cache.rb', line 29

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