| Class | XmlStore |
| In: |
lib/storage/xmlstore.rb
|
| Parent: | Store |
The XmlStore class manages access to all object storage.
# File lib/storage/xmlstore.rb, line 28 def initialize(dbfile) super() @dbfile = "#{dbfile}.xml" # check if database exists and build it if not build_database log.info "Loading world..." @db = {} # load the yaml database and sets @dbtop to highest object id File.open(@dbfile) do |f| XMLRPC::Marshal.load(f.read).each do |o| @dbtop = o.id if o.id > @dbtop @db[o.id]=o end end log.info "Database '#{@dbfile}' loaded...highest id = #{@dbtop}." # log.debug @db.inspect rescue log.fatal "Error loading database" log.fatal $! raise end
Check if an object is in the database by its id.
# File lib/storage/xmlstore.rb, line 86 def check(oid) @db.has_key? oid end
Deletes an object from the database.
# File lib/storage/xmlstore.rb, line 72 def delete(oid) @db.delete(oid) end
Iterate through all objects
# File lib/storage/xmlstore.rb, line 92 def each(&blk) @db.each_value &blk end
Finds an object in the database by its id.
# File lib/storage/xmlstore.rb, line 79 def get(oid) @db[oid] end