maccman / Supermodel
Programming Languages
Simple in-memory database using ActiveModel.
Primarily developed for Bowline applications. http://github.com/maccman/bowline
Supports:
- Serialisation
- Validations
- Callbacks
- Observers
- Dirty (Changes)
- Ruby Marshalling to disk
- Redis
Examples:
require "supermodel"
class Test < SuperModel::Base end
t = Test.new t.name = "foo" t.save #=> true
Test.all Test.first Test.last Test.find_by_name('foo)
You can use a random ID rather than the object ID:
class Test < SuperModel::Base include SuperModel::RandomID end
t = Test.create(:name => "test") t.id #=> "7ee935377bb4aecc54ad4f9126"
You can marshal objects to disk on startup/shutdown
class Test < SuperModel::Base include SuperModel::Marshal::Model end
SuperModel::Marshal.path = "dump.db" SuperModel::Marshal.load
at_exit { SuperModel::Marshal.dump }
You can use Redis, you need the Redis gem installed:
require "redis" class Test < SuperModel::Base include SuperModel::Redis::Model
attributes :name
indexes :name
end
Test.find_or_create_by_name("foo")