class Qbot::Storage::LevelDB
Constants
- QBOT_LEVELDB_DEFAULT_BACKUP_INTERVAL
- QBOT_LEVELDB_DEFAULT_DATABASE
Public Class Methods
new()
click to toggle source
# File lib/qbot/storage/leveldb.rb, line 12 def initialize interval = ENV['QBOT_LEVELDB_BACKUP_INTERVAL'] || QBOT_LEVELDB_DEFAULT_BACKUP_INTERVAL database = ENV['QBOT_LEVELDB_DATABASE'] || QBOT_LEVELDB_DEFAULT_DATABASE @db = ::LevelDB::DB.new(File.join(Dir.pwd, database)) @cache = {} restore Qbot.app.timers.every(interval) { backup } end
Public Instance Methods
namespace(ns)
click to toggle source
# File lib/qbot/storage/leveldb.rb, line 23 def namespace(ns) @cache[ns] ||= {} end
Private Instance Methods
backup()
click to toggle source
# File lib/qbot/storage/leveldb.rb, line 28 def backup return if @cache.keys.empty? @db.batch do |batch| @cache.each { |ns, v| batch[ns] = Marshal.dump(v) } end end
restore()
click to toggle source
# File lib/qbot/storage/leveldb.rb, line 35 def restore return if @db.keys.empty? @db.each { |ns, v| @cache[ns] = Marshal.load(v) } end