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