class Memory

Public Class Methods

new(brain_location) click to toggle source
# File lib/sheldon/memory.rb, line 5
def initialize(brain_location)
  database_path = File.join(brain_location, "db.yml")
  @database = YAML::Store.new(database_path)
end

Public Instance Methods

add(recall_cue, hash) click to toggle source
# File lib/sheldon/memory.rb, line 10
def add(recall_cue, hash)
  raise "cue already used" if has_cue?(recall_cue)
  @database.transaction do
    @database[recall_cue] = hash
  end
  return true
end
forget(recall_cue) click to toggle source
# File lib/sheldon/memory.rb, line 18
def forget(recall_cue)
  raise "no entry for cue" unless has_cue?(recall_cue)
  @database.transaction{ @database.delete(recall_cue) }
  return true
end
has_cue?(recall_cue) click to toggle source
# File lib/sheldon/memory.rb, line 24
def has_cue?(recall_cue)
  list_cues.any?{ |cue| cue == recall_cue }
end
list_cues() click to toggle source
# File lib/sheldon/memory.rb, line 28
def list_cues
  @database.transaction { @database.roots }
end
present?() click to toggle source
# File lib/sheldon/memory.rb, line 32
def present?
  File.exist?(@database.path)
end
recall(recall_cue) click to toggle source
# File lib/sheldon/memory.rb, line 40
def recall(recall_cue)
  raise "no entry for cue '#{recall_cue}'" unless has_cue?(recall_cue)
  @database.transaction { @database[recall_cue] }
end
save!() click to toggle source
# File lib/sheldon/memory.rb, line 36
def save!
  @database.transaction{@database.commit}
end
size() click to toggle source
# File lib/sheldon/memory.rb, line 45
def size
  list_cues.size
end