Class: HTTParty::Icebox::Store::FileStore
Overview
Store objects on the filesystem
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ FileStore
Returns a new instance of FileStore.
201
202
203
204
205
206
207
|
# File 'lib/p3-tvdb/httparty_icebox.rb', line 201
def initialize(options={})
super
options[:location] ||= Dir::tmpdir
@path = Pathname.new( options[:location] )
FileUtils.mkdir_p( @path )
self
end
|
Instance Method Details
#exists?(key) ⇒ Boolean
218
219
220
|
# File 'lib/p3-tvdb/httparty_icebox.rb', line 218
def exists?(key)
File.exists?( @path.join(key) )
end
|
#get(key) ⇒ Object
213
214
215
216
217
|
# File 'lib/p3-tvdb/httparty_icebox.rb', line 213
def get(key)
data = Marshal.load(File.new(@path.join(key)))
Cache.logger.info("Cache: #{data.nil? ? "miss" : "hit"} (#{key})")
data
end
|
#set(key, value) ⇒ Object
208
209
210
211
212
|
# File 'lib/p3-tvdb/httparty_icebox.rb', line 208
def set(key, value)
Cache.logger.info("Cache: set (#{key})")
File.open( @path.join(key), 'w' ) { |file| Marshal.dump(value, file) }
true
end
|
#stale?(key) ⇒ Boolean
221
222
223
224
|
# File 'lib/p3-tvdb/httparty_icebox.rb', line 221
def stale?(key)
return true unless exists?(key)
Time.now - created(key) > @timeout
end
|