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