Class: Drydock::ObjectCaches::InMemoryCache

Inherits:
Base
  • Object
show all
Defined in:
lib/drydock/object_caches/in_memory_cache.rb

Instance Method Summary collapse

Constructor Details

#initializeInMemoryCache

Returns a new instance of InMemoryCache.



8
9
10
# File 'lib/drydock/object_caches/in_memory_cache.rb', line 8

def initialize
  @mem = {}
end

Instance Method Details

#clearObject



12
13
14
15
# File 'lib/drydock/object_caches/in_memory_cache.rb', line 12

def clear
  @mem.clear
  true
end

#fetch(key, &blk) ⇒ Object



17
18
19
# File 'lib/drydock/object_caches/in_memory_cache.rb', line 17

def fetch(key, &blk)
  @mem.fetch(key, &blk)
end

#get(key, &blk) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/drydock/object_caches/in_memory_cache.rb', line 21

def get(key, &blk)
  if @mem.key?(key)
    if blk.nil?
      @mem[key]
    else
      blk.call(StringIO.new(@mem[key]))
    end
  else
    nil
  end
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/drydock/object_caches/in_memory_cache.rb', line 33

def key?(key)
  @mem.key?(key)
end

#set(key, value = nil, &blk) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/drydock/object_caches/in_memory_cache.rb', line 37

def set(key, value = nil, &blk)
  if blk
    buffer = StringIO.new
    blk.call buffer
    buffer.rewind
    @mem[key] = buffer.string
  else
    @mem[key] = value
  end

  nil
end