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
-
#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
- #size ⇒ Object
- #store ⇒ Object
- #store_class ⇒ Object
Instance Method Details
#all ⇒ Object
34 35 36 |
# File 'lib/mem_model/base.rb', line 34 def all store.to_a end |
#committed? ⇒ Boolean
88 |
# File 'lib/mem_model/base.rb', line 88 def committed?; false; end |
#create(atts = {}) ⇒ Object
Create a new record. Example:
create(:name => "foo", :id => 1)
64 65 66 67 |
# File 'lib/mem_model/base.rb', line 64 def create(atts = {}) rec = self.new(atts) rec.save && rec end |
#delete(record) ⇒ Object
83 84 85 |
# File 'lib/mem_model/base.rb', line 83 def delete(record) store.delete(record) end |
#delete_all ⇒ Object
57 58 59 |
# File 'lib/mem_model/base.rb', line 57 def delete_all store.clear end |
#each(&block) ⇒ Object
14 15 16 |
# File 'lib/mem_model/base.rb', line 14 def each(&block) store.each(&block) end |
#exists?(id) ⇒ Boolean
53 54 55 |
# File 'lib/mem_model/base.rb', line 53 def exists?(id) store.any?{ |record| record.id == id } end |
#find(id) ⇒ Object Also known as: []
Find or nil
43 44 45 |
# File 'lib/mem_model/base.rb', line 43 def find(id) store.detect{ |r| r.id == id } end |
#find_by_id(id) ⇒ Object
Find or raise
49 50 51 |
# File 'lib/mem_model/base.rb', line 49 def find_by_id(id) find(id) || raise(UnknownRecord, "Couldn't find #{self.name} with ID=#{id}") end |
#last ⇒ Object
38 39 40 |
# File 'lib/mem_model/base.rb', line 38 def last all[-1] end |
#maglev? ⇒ Boolean
69 70 71 |
# File 'lib/mem_model/base.rb', line 69 def maglev? MemModel.maglev? end |
#model_name ⇒ Object
18 19 20 |
# File 'lib/mem_model/base.rb', line 18 def model_name @model_name ||= ModelName.new(self.name) end |
#persistent(&block) ⇒ Object
91 92 93 94 95 |
# File 'lib/mem_model/base.rb', line 91 def persistent(&block) committed? ? MemModel.persistent(&block) : block.call end |
#size ⇒ Object
30 31 32 |
# File 'lib/mem_model/base.rb', line 30 def size store.size end |
#store ⇒ Object
26 27 28 |
# File 'lib/mem_model/base.rb', line 26 def store @store ||= store_class.new end |
#store_class ⇒ Object
22 23 24 |
# File 'lib/mem_model/base.rb', line 22 def store_class maglev? ? IdentitySet : Set end |