class Anemone::Storage::PStore

Public Class Methods

new(file) click to toggle source
# File lib/anemone/storage/pstore.rb, line 11
def initialize(file)
  File.delete(file) if File.exists?(file)
  @store = ::PStore.new(file)
  @keys = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/anemone/storage/pstore.rb, line 17
def [](key)
  @store.transaction { |s| s[key] }
end
[]=(key,value) click to toggle source
# File lib/anemone/storage/pstore.rb, line 21
def []=(key,value)
  @keys[key] = nil
  @store.transaction { |s| s[key] = value }
end
close() click to toggle source
# File lib/anemone/storage/pstore.rb, line 46
def close; end
delete(key) click to toggle source
# File lib/anemone/storage/pstore.rb, line 26
def delete(key)
  @keys.delete(key)
  @store.transaction { |s| s.delete key}
end
each() { |key, value| ... } click to toggle source
# File lib/anemone/storage/pstore.rb, line 31
def each
  @keys.each_key do |key|
    value = nil
    @store.transaction { |s| value = s[key] }
    yield key, value
  end
end
merge!(hash) click to toggle source
# File lib/anemone/storage/pstore.rb, line 39
def merge!(hash)
  @store.transaction do |s|
    hash.each { |key, value| s[key] = value; @keys[key] = nil }
  end
  self
end