Module: MemModel::Base::ClassMethods

Extended by:
Forwardable
Defined in:
lib/mem_model/base.rb

Instance Method Summary collapse

Instance Method Details

#create(atts = {}) ⇒ Object

Create a new record. Example:

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


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

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

#create!(*args) ⇒ Object



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

def create!(*args)
  create(*args) || raise(InvalidRecord)
end

#delete_allObject

Removes all records without executing destroy callbacks.



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

def delete_all
  store.clear
end

#destroy(id) ⇒ Object



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

def destroy(id)
  find(id).destroy
end

#destroy_allObject

Removes all records and executes destroy callbacks.



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

def destroy_all
  all.each {|r| r.destroy }
end

#exists?(id) ⇒ Boolean



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

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

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

Find or nil



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

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

#find_by_id(id) ⇒ Object

Find or raise



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

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

#generate_idObject



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

def generate_id
  object_id
end

#storeObject



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

def store
  @store ||= Set.new
end

#update(id, atts) ⇒ Object



43
44
45
# File 'lib/mem_model/base.rb', line 43

def update(id, atts)
  find(id).update_attributes(atts)
end