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

Constructor Details

#initialize(path = nil) ⇒ MemoryAdapter

Returns a new instance of MemoryAdapter.

Parameters:

  • path (String, nil) (defaults to: nil)

    represents the path to store db.



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)

Returns:

  • (Hash{String => String})


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

Parameters:

  • data (Enumerator<(String, Object)>)
  • bar (#increment, nil)


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



72
73
74
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 72

def clear
  db.clear
end

#delete(address) ⇒ void

This method returns an undefined value.

Parameters:

  • address (String)


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

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

#exist?(address) ⇒ true, false

Parameters:

  • address (String)

Returns:

  • (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

Parameters:

  • address (String)

Returns:

  • (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>

Returns:

  • (Array<String>)


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

def keys
  db.keys
end

#put(address, object) ⇒ void

This method returns an undefined value.

Parameters:

  • address (String)
  • object (Object)


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



68
69
70
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 68

def stats
  "No stats"
end

#syncObject



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

def sync
end