Class: MemoryModel
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- MemoryModel
show all
- Defined in:
- lib/server/memory_model.rb
Constant Summary
collapse
- @@db =
{}
- @@types =
{}
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of MemoryModel.
6
7
8
9
10
|
# File 'lib/server/memory_model.rb', line 6
def initialize(hash)
@@types[self.class] ||= {}
hash = resolve_types(symbolize_keys(hash))
super(hash)
end
|
Class Method Details
.all ⇒ Object
42
43
44
45
|
# File 'lib/server/memory_model.rb', line 42
def self.all
@@db[self] ||= []
@@db[self]
end
|
.attribute(attribute, type) ⇒ Object
59
60
61
62
|
# File 'lib/server/memory_model.rb', line 59
def self.attribute(attribute, type)
@@types[self] ||= {}
@@types[self][attribute] = type
end
|
.count ⇒ Object
55
56
57
|
# File 'lib/server/memory_model.rb', line 55
def self.count
all.size
end
|
.create(hash = {}) ⇒ Object
37
38
39
40
|
# File 'lib/server/memory_model.rb', line 37
def self.create(hash = {})
all << new(hash)
all[-1]
end
|
.delete_all ⇒ Object
51
52
53
|
# File 'lib/server/memory_model.rb', line 51
def self.delete_all
all.clear
end
|
.find(id) ⇒ Object
33
34
35
|
# File 'lib/server/memory_model.rb', line 33
def self.find(id)
all.find { |r| r.id == id.to_i }
end
|
.first ⇒ Object
47
48
49
|
# File 'lib/server/memory_model.rb', line 47
def self.first
all.first
end
|
Instance Method Details
#attributes ⇒ Object
20
21
22
|
# File 'lib/server/memory_model.rb', line 20
def attributes
@table
end
|
#destroy ⇒ Object
29
30
31
|
# File 'lib/server/memory_model.rb', line 29
def destroy
self.class.all.delete_if { |b| b.id == id }
end
|
#id ⇒ Object
12
13
14
|
# File 'lib/server/memory_model.rb', line 12
def id
object_id
end
|
#type ⇒ Object
16
17
18
|
# File 'lib/server/memory_model.rb', line 16
def type
@table[:type]
end
|
#update(hash) ⇒ Object
24
25
26
27
|
# File 'lib/server/memory_model.rb', line 24
def update(hash)
@table.merge!(resolve_types(symbolize_keys(hash)))
self
end
|