class Nestene::DiskStorage
Public Class Methods
new(dir)
click to toggle source
# File lib/nestene/storage.rb, line 20 def initialize(dir) @dir=dir @converter = FileNameConverter.new end
Public Instance Methods
delete(key)
click to toggle source
# File lib/nestene/storage.rb, line 56 def delete(key) file_name = "%s/%s" % [@dir,@converter.key_to_file_name(key)] File.unlink(file_name) end
list()
click to toggle source
# File lib/nestene/storage.rb, line 25 def list entries = Dir.entries(@dir) entries.delete('.') entries.delete('..') entries.map!{|fn| @converter.file_name_to_key(fn)} entries.delete('__credentials__') entries end
load(key)
click to toggle source
# File lib/nestene/storage.rb, line 47 def load(key) file_name = "%s/%s" % [@dir,@converter.key_to_file_name(key)] if File.exist?(file_name) File.open(file_name,"r"){|f| JSON.parse(f.read)} else nil end end
store(key, value)
click to toggle source
# File lib/nestene/storage.rb, line 34 def store(key, value) if value != nil final_name = "%s/%s" % [@dir,@converter.key_to_file_name(key)] tmp_name = "%s.temp" % final_name File.open(tmp_name,"w") do |f| f.write(JSON.pretty_generate(value)) end File.rename(tmp_name, final_name) else delete(key) end end