Trying to shoe-horn in sqlite. This needs a lot of work. SQLiteConnect needs to initialize itself... reset tables on command and build new ones. Then start hacking at EntityFactory to get active records back.

This commit is contained in:
Alex Stevenson 2025-07-16 23:13:07 -04:00
parent 8fa1664bcb
commit 5ea17719be
5 changed files with 104 additions and 35 deletions

77
active_sqlite_record.rb Normal file
View file

@ -0,0 +1,77 @@
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