class ActiveSqliteRecord @mc = nil # MongoConnect instance @doc = nil # MongoDocument instance.... @id = nil # BSON ID for the Doc def initialize(mc, doc=nil) @mc = mc if doc == nil then create() else @id = doc['_id'] @doc = doc 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