Class: Feedx::Cache::Memory

Inherits:
Abstract show all
Defined in:
lib/feedx/cache/memory.rb

Overview

Thread-safe in-memory cache. Use for testing only.

Instance Method Summary collapse

Methods inherited from Abstract

#fetch, #value

Constructor Details

#initializeMemory

Returns a new instance of Memory.



5
6
7
8
9
# File 'lib/feedx/cache/memory.rb', line 5

def initialize
  super
  @monitor = Monitor.new
  @entries = {}
end

Instance Method Details

#clearObject

Clear empties cache.



12
13
14
15
16
# File 'lib/feedx/cache/memory.rb', line 12

def clear
  @monitor.synchronize do
    @entries.clear
  end
end

#read(key) ⇒ Object

Read reads a key.



19
20
21
22
23
# File 'lib/feedx/cache/memory.rb', line 19

def read(key, **)
  @monitor.synchronize do
    @entries[key]
  end
end

#write(key, value) ⇒ Object

Write writes a key.



26
27
28
29
30
# File 'lib/feedx/cache/memory.rb', line 26

def write(key, value, **)
  @monitor.synchronize do
    @entries[key] = value.to_s
  end
end