Module: MemModel::Base::ClassMethods
- Includes:
- Enumerable
- Defined in:
- lib/mem_model/base.rb
Instance Method Summary collapse
- #abort ⇒ Object
- #all ⇒ Object
- #commit ⇒ Object
- #committed? ⇒ Boolean
- #container_key ⇒ Object
-
#create(atts = {}) ⇒ Object
Create a new record.
- #delete(record) ⇒ Object
- #delete_all ⇒ Object
- #each(&block) ⇒ Object
- #exists?(id) ⇒ Boolean
-
#find(id) ⇒ Object
(also: #[])
Find or nil.
-
#find_by_id(id) ⇒ Object
Find or raise.
- #last ⇒ Object
- #maglev? ⇒ Boolean
- #model_name ⇒ Object
- #persistent(&block) ⇒ Object
- #root ⇒ Object
- #root_container ⇒ Object
- #size ⇒ Object
- #store ⇒ Object
- #store_class ⇒ Object
Instance Method Details
#abort ⇒ Object
92 93 94 |
# File 'lib/mem_model/base.rb', line 92 def abort MemModel.abort end |
#all ⇒ Object
53 54 55 |
# File 'lib/mem_model/base.rb', line 53 def all store.to_a end |
#commit ⇒ Object
96 97 98 |
# File 'lib/mem_model/base.rb', line 96 def commit MemModel.commit end |
#committed? ⇒ Boolean
107 |
# File 'lib/mem_model/base.rb', line 107 def committed?; false; end |
#container_key ⇒ Object
23 24 25 |
# File 'lib/mem_model/base.rb', line 23 def container_key name.to_sym end |
#create(atts = {}) ⇒ Object
Create a new record. Example:
create(:name => "foo", :id => 1)
83 84 85 86 |
# File 'lib/mem_model/base.rb', line 83 def create(atts = {}) rec = self.new(atts) rec.save && rec end |
#delete(record) ⇒ Object
102 103 104 |
# File 'lib/mem_model/base.rb', line 102 def delete(record) persistent{ store.delete(record) } end |
#delete_all ⇒ Object
76 77 78 |
# File 'lib/mem_model/base.rb', line 76 def delete_all store.clear end |
#each(&block) ⇒ Object
37 38 39 |
# File 'lib/mem_model/base.rb', line 37 def each(&block) store.each(&block) end |
#exists?(id) ⇒ Boolean
72 73 74 |
# File 'lib/mem_model/base.rb', line 72 def exists?(id) store.any?{ |record| record.id == id } end |
#find(id) ⇒ Object Also known as: []
Find or nil
62 63 64 |
# File 'lib/mem_model/base.rb', line 62 def find(id) store.detect{ |r| r.id == id } end |
#find_by_id(id) ⇒ Object
Find or raise
68 69 70 |
# 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 ⇒ Object
57 58 59 |
# File 'lib/mem_model/base.rb', line 57 def last all[-1] end |
#maglev? ⇒ Boolean
88 89 90 |
# File 'lib/mem_model/base.rb', line 88 def maglev? MemModel.maglev? end |
#model_name ⇒ Object
41 42 43 |
# File 'lib/mem_model/base.rb', line 41 def model_name @model_name ||= ModelName.new(self.name) end |
#persistent(&block) ⇒ Object
110 111 112 113 114 115 116 |
# File 'lib/mem_model/base.rb', line 110 def persistent(&block) result = committed? ? MemModel.persistent(&block) : block.call commit result end |
#root ⇒ Object
32 33 34 |
# File 'lib/mem_model/base.rb', line 32 def root @root ||= root_container::PERSISTENT_ROOT end |
#root_container ⇒ Object
19 20 21 |
# File 'lib/mem_model/base.rb', line 19 def root_container MemModel.maglev? ? Maglev : MemModel end |
#size ⇒ Object
49 50 51 |
# File 'lib/mem_model/base.rb', line 49 def size store.size end |
#store ⇒ Object
27 28 29 30 |
# File 'lib/mem_model/base.rb', line 27 def store root[:MemModel] ||= {} root[:MemModel][container_key] ||= store_class.new end |
#store_class ⇒ Object
45 46 47 |
# File 'lib/mem_model/base.rb', line 45 def store_class maglev? ? IdentitySet : Set end |