class Ruboty::Brains::Leveldb
Constants
- KEY
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/ruboty/brains/leveldb.rb, line 13 def initialize super @thread = Thread.new { sync } @thread.abort_on_exception = true end
Public Instance Methods
data()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 19 def data @data ||= pull || {} end
Private Instance Methods
db()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 25 def db @db ||= LevelDB::DB.new(db_file) end
db_file()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 29 def db_file ENV["LEVELDB_PATH"] || "ruboty.ldb" end
interval()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 33 def interval (ENV["LEVELDB_SAVE_INTERVAL"] || 5).to_i end
pull()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 37 def pull if str = db[KEY] Marshal.load(str) end end
push()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 43 def push db[KEY] = Marshal.dump(data) end
sync()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 47 def sync loop do wait push end end
wait()
click to toggle source
# File lib/ruboty/brains/leveldb.rb, line 54 def wait sleep(interval) end