class Mhc::EtagStore
Public Class Methods
new(top_directory)
click to toggle source
# File lib/mhc/etag.rb, line 3 def initialize(top_directory) @top_directory = top_directory end
Public Instance Methods
get(uid)
click to toggle source
# File lib/mhc/etag.rb, line 15 def get(uid) if value = load(uid) return value end end
put(key, value)
click to toggle source
# File lib/mhc/etag.rb, line 7 def put(key, value) if value.nil? unlink(key) else store(key, value) end end
uid_list()
click to toggle source
# File lib/mhc/etag.rb, line 21 def uid_list keys end
Private Instance Methods
keys()
click to toggle source
# File lib/mhc/etag.rb, line 34 def keys Dir.glob(File.join(@top_directory, '*.etag')).map {|p| make_key(p)} end
load(key)
click to toggle source
# File lib/mhc/etag.rb, line 44 def load(key) begin File.open(make_path(key), "r") do |f| return f.read end rescue return nil end end
make_key(path)
click to toggle source
# File lib/mhc/etag.rb, line 64 def make_key(path) File.basename(path, '.etag') end
make_path(key)
click to toggle source
# File lib/mhc/etag.rb, line 60 def make_path(key) File.join(@top_directory, key.to_s + '.etag') end
store(key, value)
click to toggle source
# File lib/mhc/etag.rb, line 38 def store(key, value) File.open(make_path(key), "w") do |f| f.write(value) end end
unlink(key)
click to toggle source
# File lib/mhc/etag.rb, line 54 def unlink(key) if File.exists?(path = make_path(key)) File.unlink(path) end end