Module: MemModel::Base::ClassMethods

Includes:
Enumerable
Defined in:
lib/mem_model/base.rb

Instance Method Summary collapse

Instance Method Details

#abortObject



73
74
75
# File 'lib/mem_model/base.rb', line 73

def abort
  MemModel.abort
end

#allObject



34
35
36
# File 'lib/mem_model/base.rb', line 34

def all
  store.to_a
end

#commitObject



77
78
79
# File 'lib/mem_model/base.rb', line 77

def commit
  MemModel.commit
end

#committed?Boolean

Returns:

  • (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_allObject



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

Returns:

  • (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

#lastObject



38
39
40
# File 'lib/mem_model/base.rb', line 38

def last
  all[-1]
end

#maglev?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/mem_model/base.rb', line 69

def maglev?
  MemModel.maglev?
end

#model_nameObject



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

#sizeObject



30
31
32
# File 'lib/mem_model/base.rb', line 30

def size
  store.size
end

#storeObject



26
27
28
# File 'lib/mem_model/base.rb', line 26

def store
  @store ||= store_class.new
end

#store_classObject



22
23
24
# File 'lib/mem_model/base.rb', line 22

def store_class
  maglev? ? IdentitySet : Set
end