class ActiveSqliteRecord @sqlite_connect = nil # SQLiteConnect instance @row = nil # SQLite row... @id = nil # Row ID for the record def initialize(sc, table, row=nil) @sqlite_connect = sc if row == nil then create(table) else @id = row['_id'] @row = row end end def create() @id = BSON::ObjectId.new() doc = get_default_doc() doc['_id'] = @id @doc = doc @mc.collection.insert_one(@doc) end def load() @doc = @mc.collection().find({"_id" => @id}).first() end # save and grab the ID and doc.... def set(params={}, persist=true) @doc.merge!(params) if persist == true then persist() end end def get(field) return @doc[field] end def persist() @mc.collection().update_one({"_id" => @id}, @doc) end def delete() if @id == nil then die end @mc.collection().delete_one({"_id" => @id}) end def update(query) @mc.collection().update_one({"_id" => @id}, query) end def get_default_doc() puts "Override this in ent class" return {} end def self.build_from(mc, doc=nil) if doc == nil then puts "wtf whoops??" else @mc = mc @doc = doc @id = @doc['_id'] end return self end end