class Sunstore::Store
Attributes
basename[R]
format[R]
handler[R]
store_file[R]
Public Class Methods
instance()
click to toggle source
# File lib/sunstore/store.rb, line 9 def self.instance @@instance ||= new end
new()
click to toggle source
# File lib/sunstore/store.rb, line 17 def initialize config end
reset()
click to toggle source
# File lib/sunstore/store.rb, line 13 def self.reset @@instance = nil end
Public Instance Methods
clear()
click to toggle source
# File lib/sunstore/store.rb, line 48 def clear data.clear save_data end
config(params={})
click to toggle source
# File lib/sunstore/store.rb, line 21 def config(params={}) @format = [:yaml,:json,nil].include?(params[:format]) ? params[:format] || :yaml : raise("Only yaml and json currently supported") @basename = params[:basename] || "sunstore" @basedir = params[:basedir] || (defined?(Rails) ? Rails.root.to_s : Dir.getwd) create_dir_structure(@basedir) @handler = Sunstore::Handler.for(format) @store_file = File.join(@basedir,"#{@basename}.#{@handler.type}") end
delete(key)
click to toggle source
# File lib/sunstore/store.rb, line 39 def delete(key) data.delete(key) save_data end
get(key)
click to toggle source
# File lib/sunstore/store.rb, line 30 def get(key) data[key] end
keys()
click to toggle source
# File lib/sunstore/store.rb, line 44 def keys data.keys end
put(key,value)
click to toggle source
# File lib/sunstore/store.rb, line 34 def put(key,value) data[key] = value save_data end
Private Instance Methods
create_dir_structure(target_dir)
click to toggle source
# File lib/sunstore/store.rb, line 72 def create_dir_structure(target_dir) curdir = '' target_dir.split('/').each do |dir| curdir = File.join(curdir,dir) Dir.exist?(curdir) or Dir.mkdir(curdir) end end
data()
click to toggle source
# File lib/sunstore/store.rb, line 61 def data unless @data if File.exist?(store_file) @data = @handler.deserialize(File.read(store_file)) || {} else @data = {} end end @data end
save_data()
click to toggle source
# File lib/sunstore/store.rb, line 55 def save_data File.open(store_file,"w") do |f| f.write @handler.serialize(@data) end end