Project

worsemodel

0.15
No commit activity in last 3 years
No release in over 3 years
In memory DB using ActiveModel
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

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