Class: MemoryModel

Inherits:
OpenStruct
  • Object
show all
Defined in:
lib/server/memory_model.rb

Constant Summary collapse

@@db =
{}
@@types =
{}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ MemoryModel

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

.allObject



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

.countObject



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_allObject



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

.firstObject



47
48
49
# File 'lib/server/memory_model.rb', line 47

def self.first
  all.first
end

Instance Method Details

#attributesObject



20
21
22
# File 'lib/server/memory_model.rb', line 20

def attributes
  @table
end

#destroyObject



29
30
31
# File 'lib/server/memory_model.rb', line 29

def destroy
  self.class.all.delete_if { |b| b.id == id }
end

#idObject



12
13
14
# File 'lib/server/memory_model.rb', line 12

def id
  object_id
end

#typeObject



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