Methods
Public Class methods
[ show source ]
# File lib/glue/cache/file.rb, line 11
11: def initialize(name = "cache", keepalive = nil)
12: @path = File.join(FileCache.basedir, name)
13: @keepalive = keepalive
14:
15: FileUtils.mkdir_p(@path, :mode => 0700)
16: end
Public Instance methods
This method is also aliased as
get
[ show source ]
# File lib/glue/cache/file.rb, line 24
24: def [](k)
25: fn = File.join(@path, escape_filename(k.to_s) )
26: return nil unless File.exists?(fn)
27: decode_file(fn)
28: end
This method is also aliased as
set
[ show source ]
# File lib/glue/cache/file.rb, line 18
18: def []=(k,v)
19: fn = File.join(@path, escape_filename(k.to_s) )
20: encode_file(fn, v)
21: end
[ show source ]
# File lib/glue/cache/file.rb, line 46
46: def all
47: Dir.glob( File.join(@path, '*' ) )
48: end
[ show source ]
# File lib/glue/cache/file.rb, line 31
31: def delete(k)
32: f = File.join(@path, escape_filename(k.to_s))
33: File.delete(f) if File.exists?(f)
34: end
[ show source ]
# File lib/glue/cache/file.rb, line 36
36: def gc!
37: return unless @keepalive
38:
39: now = Time.now
40: all.each do |fn|
41: expire_time = File.stat(fn).atime + @keepalive
42: File.delete(fn) if now > expire_time
43: end
44: end