module MemModel::Base::ClassMethods

Public Instance Methods

[](id)
Alias for: find
abort() click to toggle source
# File lib/mem_model/base.rb, line 92
def abort
  MemModel.abort
end
all() click to toggle source
# File lib/mem_model/base.rb, line 53
def all
  store.to_a
end
commit() click to toggle source
# File lib/mem_model/base.rb, line 96
def commit
  MemModel.commit
end
committed?() click to toggle source
# File lib/mem_model/base.rb, line 107
def committed?; false; end
container_key() click to toggle source
# File lib/mem_model/base.rb, line 23
def container_key
  name.to_sym
end
create(atts = {}) click to toggle source

Create a new record. Example:

create(:name => "foo", :id => 1)
# File lib/mem_model/base.rb, line 83
def create(atts = {})
  rec = self.new(atts)
  rec.save && rec
end
delete(record) click to toggle source
# File lib/mem_model/base.rb, line 102
def delete(record)
  persistent{ store.delete(record) }
end
delete_all() click to toggle source
# File lib/mem_model/base.rb, line 76
def delete_all
  store.clear
end
each(&block) click to toggle source
# File lib/mem_model/base.rb, line 37
def each(&block)
  store.each(&block)
end
exists?(id) click to toggle source
# File lib/mem_model/base.rb, line 72
def exists?(id)
  store.any?{ |record| record.id == id }
end
find(id) click to toggle source

Find or nil

# File lib/mem_model/base.rb, line 62
def find(id)
  store.detect{ |r| r.id == id }
end
Also aliased as: []
find_by_id(id) click to toggle source

Find or raise

# File lib/mem_model/base.rb, line 68
def find_by_id(id)
  find(id) || raise(UnknownRecord, "Couldn't find #{self.name} with ID=#{id}")
end
last() click to toggle source
# File lib/mem_model/base.rb, line 57
def last
  all[-1]
end
maglev?() click to toggle source
# File lib/mem_model/base.rb, line 88
def maglev?
  MemModel.maglev?
end
model_name() click to toggle source
# File lib/mem_model/base.rb, line 41
def model_name
  @model_name ||= ModelName.new(self.name)
end
persistent(&block) click to toggle source
# File lib/mem_model/base.rb, line 110
def persistent(&block)
  result = committed? ?
    MemModel.persistent(&block) :
    block.call
  commit
  result
end
root() click to toggle source
# File lib/mem_model/base.rb, line 32
def root
  @root ||= root_container::PERSISTENT_ROOT
end
root_container() click to toggle source
# File lib/mem_model/base.rb, line 19
def root_container
  MemModel.maglev? ? Maglev : MemModel
end
size() click to toggle source
# File lib/mem_model/base.rb, line 49
def size
  store.size
end
store() click to toggle source
# File lib/mem_model/base.rb, line 27
def store
  root[:MemModel] ||= {}
  root[:MemModel][container_key] ||= store_class.new
end
store_class() click to toggle source
# File lib/mem_model/base.rb, line 45
def store_class
  maglev? ? IdentitySet : Set
end