Module: MemModel::Base::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#abortObject



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

def abort
  # no-op
  true
end

#allObject



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

def all
  store.to_a
end

#commitObject



81
82
83
84
# File 'lib/mem_model/base.rb', line 81

def commit
  # no-op
  true
end

#create(atts = {}) ⇒ Object

Create a new record. Example:

create(:name => "foo", :id => 1)


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

def create(atts = {})
  rec = self.new(atts)
  rec.save && rec
end

#delete(record) ⇒ Object



88
89
90
# File 'lib/mem_model/base.rb', line 88

def delete(record)
  store.delete(record)
end

#delete_allObject



60
61
62
# File 'lib/mem_model/base.rb', line 60

def delete_all
  store.clear
end

#each(&block) ⇒ Object



13
14
15
# File 'lib/mem_model/base.rb', line 13

def each(&block)
  store.each(&block)
end

#exists?(id) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/mem_model/base.rb', line 56

def exists?(id)
  store.any?{ |record| record.id == id }
end

#find(id) ⇒ Object Also known as: []

Find or nil



46
47
48
# File 'lib/mem_model/base.rb', line 46

def find(id)
  store.detect{ |r| r.id == id }
end

#find_by_id(id) ⇒ Object

Find or raise



52
53
54
# File 'lib/mem_model/base.rb', line 52

def find_by_id(id)
  find(id) || raise(UnknownRecord, "Couldn't find #{self.name} with ID=#{id}")
end

#generate_idObject



41
42
43
# File 'lib/mem_model/base.rb', line 41

def generate_id
  object_id
end

#lastObject



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

def last
  all[-1]
end

#maglev?Boolean

Returns:

  • (Boolean)


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

def maglev?
  MemModel.maglev?
end

#model_nameObject



17
18
19
# File 'lib/mem_model/base.rb', line 17

def model_name
  @model_name ||= ModelName.new(self.name)
end

#sizeObject



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

def size
  store.size
end

#storeObject



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

def store
  @store ||= store_class.new
end

#store_classObject



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

def store_class
  maglev? ? IdentitySet : Set
end