class PositronicBrain::Persistence::Base

Attributes

dump_path[R]
options[R]
persistence[R]

Public Class Methods

new(dump_path, options = {}) click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 8
def initialize(dump_path, options = {})
  @dump_path, @options = dump_path, options
  load || init
end

Public Instance Methods

==(other) click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 18
def ==(other)
  @persistence == other.persistence
end
dump() click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 13
def dump
  ensure_dump_directory
  File.open(@dump_path, 'w'){ |f| f.puts Marshal.dump @persistence }
end

Protected Instance Methods

dumped_data() click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 28
def dumped_data
  File.read @dump_path
end
ensure_dump_directory() click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 23
def ensure_dump_directory
  dump_dir = File.dirname @dump_path
  FileUtils.mkdir_p dump_dir unless Dir.exists? dump_dir
end
init() click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 37
def init
  @persistence = Hash.new
end
load() click to toggle source
# File lib/positronic_brain/persistence/persistence.rb, line 32
def load
  return false unless File.exists? dump_path
  @persistence = Marshal.load dumped_data
end