All Projects → maccman → Supermodel

maccman / Supermodel

Licence: mit
Ruby in-memory models

Programming Languages

ruby
36898 projects - #4 most used programming language

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")

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].