module MemModel::Base::ClassMethods
Public Instance Methods
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