class Mhc::DataStore::Cache

Constants

VERSION

Public Class Methods

new(cache_filename) click to toggle source
# File lib/mhc/datastore.rb, line 122
def initialize(cache_filename)
  @pstore = PStore.new(cache_filename)
  load
end

Public Instance Methods

each() { |uid, ent| ... } click to toggle source

dump cache entry for debug usage

# File lib/mhc/datastore.rb, line 128
def each
  load unless @db
  @db.each do |uid, ent|
    yield uid, ent
  end
end
lookup(uid, filename) click to toggle source
# File lib/mhc/datastore.rb, line 135
def lookup(uid, filename)
  unless c = get(uid) and File.mtime(filename).to_i <= c.mtime
    c = CacheEntry.new(filename)
    put(uid, c)
  end
  return c
end
save() click to toggle source
# File lib/mhc/datastore.rb, line 143
def save
  return self unless @dirty
  @pstore.transaction do
    @pstore["root"] = @db
    @pstore["version"] = VERSION
  end
  @dirty = false
end

Private Instance Methods

get(uid) click to toggle source
# File lib/mhc/datastore.rb, line 154
def get(uid)
  @db[uid]
end
load() click to toggle source
# File lib/mhc/datastore.rb, line 163
def load
  @pstore.transaction do
    @db = (@pstore["version"] == VERSION) && @pstore["root"] || {}
  end
  @dirty = false
end
put(uid, value) click to toggle source
# File lib/mhc/datastore.rb, line 158
def put(uid, value)
  @db[uid] = value
  @dirty = true
end