Class: Yoda::Store::Adapters::MemoryAdapter

Inherits:
Base
  • Object
show all
Defined in:
lib/yoda/store/adapters/memory_adapter.rb

Overview

An adapter implementation to store object in memory. This implementation losts data on exit and we recommend to use this adapter only for test.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#inspect

Constructor Details

#initialize(path = nil) ⇒ MemoryAdapter



24
25
26
27
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 24

def initialize(path = nil)
  @path = path
  @db = {}
end

Instance Attribute Details

#dbHash{String => String} (readonly)



21
22
23
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 21

def db
  @db
end

Class Method Details

.for(path) ⇒ Object



10
11
12
13
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 10

def for(path)
  @pool ||= {}
  @pool[path] || (@pool[path] = new(path))
end

.typeObject



15
16
17
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 15

def type
  :memory
end

Instance Method Details

#batch_write(data, bar) ⇒ Object



37
38
39
40
41
42
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 37

def batch_write(data, bar)
  data.each do |(k, v)|
    put(k, v)
    bar&.increment
  end
end

#clearObject



82
83
84
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 82

def clear
  db.clear
end

#delete(address) ⇒ void



53
54
55
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 53

def delete(address)
  db.delete(address.to_s)
end

#empty?Boolean



74
75
76
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 74

def empty?
  db.empty?
end

#exist?(address) ⇒ true, false



59
60
61
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 59

def exist?(address)
  db.member?(address.to_s)
end

#get(address) ⇒ any



31
32
33
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 31

def get(address, **)
  JSON.load(db[address.to_s], symbolize_names: true)
end

#keysArray<String>



70
71
72
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 70

def keys
  db.keys
end

#namespace(name) ⇒ MemoryAdapter



65
66
67
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 65

def namespace(name)
  namespaces[name.to_s] ||= MemoryAdapter.new
end

#persistable?Boolean



89
90
91
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 89

def persistable?
  false
end

#put(address, object) ⇒ void



47
48
49
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 47

def put(address, object)
  db[address.to_s] = object.to_json
end

#statsObject



78
79
80
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 78

def stats
  "No stats"
end

#syncObject



86
87
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 86

def sync
end