class Yoda::Store::Adapters::MemoryAdapter

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

Attributes

db[R]

@return [Hash{String => String}]

Public Class Methods

for(path) click to toggle source
# File lib/yoda/store/adapters/memory_adapter.rb, line 10
def for(path)
  @pool ||= {}
  @pool[path] || (@pool[path] = new(path))
end
new(path = nil) click to toggle source

@param path [String, nil] represents the path to store db.

# File lib/yoda/store/adapters/memory_adapter.rb, line 24
def initialize(path = nil)
  @path = path
  @db = {}
end
type() click to toggle source
# File lib/yoda/store/adapters/memory_adapter.rb, line 15
def type
  :memory
end

Public Instance Methods

batch_write(data, bar) click to toggle source

@param data [Enumerator<(String, Object)>] @param bar [#increment, nil]

# 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
clear() click to toggle source
# File lib/yoda/store/adapters/memory_adapter.rb, line 72
def clear
  db.clear
end
delete(address) click to toggle source

@param address [String] @return [void]

# File lib/yoda/store/adapters/memory_adapter.rb, line 53
def delete(address)
  db.delete(address.to_s)
end
exist?(address) click to toggle source

@param address [String] @return [true, false]

# File lib/yoda/store/adapters/memory_adapter.rb, line 59
def exist?(address)
  db.member?(address.to_s)
end
get(address) click to toggle source

@param address [String] @return [any]

# File lib/yoda/store/adapters/memory_adapter.rb, line 31
def get(address)
  JSON.load(db[address.to_s], symbolize_names: true)
end
keys() click to toggle source

@return [Array<String>]

# File lib/yoda/store/adapters/memory_adapter.rb, line 64
def keys
  db.keys
end
put(address, object) click to toggle source

@param address [String] @param object [Object] @return [void]

# File lib/yoda/store/adapters/memory_adapter.rb, line 47
def put(address, object)
  db[address.to_s] = object.to_json
end
stats() click to toggle source
# File lib/yoda/store/adapters/memory_adapter.rb, line 68
def stats
  "No stats"
end
sync() click to toggle source
# File lib/yoda/store/adapters/memory_adapter.rb, line 76
def sync
end