class SiteInspector::DiskCache
Public Class Methods
new(dir = nil, replace = nil)
click to toggle source
# 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
Public Instance Methods
get(request)
click to toggle source
# 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)
click to toggle source
# File lib/site-inspector/disk_cache.rb, line 29 def set(request, response) File.write(path(request), Marshal.dump(response)) @memory[request] = response end
Private Instance Methods
path(request)
click to toggle source
The `request` is a Typhoeus::Request, which provides a unique `cache_key` string for exactly this sort of thing.
# File lib/site-inspector/disk_cache.rb, line 38 def path(request) File.join(@dir, request.cache_key) end