Class: Polipus::Storage::MemoryStore

Inherits:
Base
  • Object
show all
Defined in:
lib/polipus/storage/memory_store.rb

Instance Attribute Summary

Attributes inherited from Base

#include_query_string_in_uuid

Instance Method Summary collapse

Constructor Details

#initialize(_options = {}) ⇒ MemoryStore

Returns a new instance of MemoryStore.



6
7
8
9
# File 'lib/polipus/storage/memory_store.rb', line 6

def initialize(_options = {})
  @store = {}
  @semaphore = Mutex.new
end

Instance Method Details

#add(page) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/polipus/storage/memory_store.rb', line 11

def add(page)
  @semaphore.synchronize do
    u = uuid(page)
    @store[u] = page
    u
  end
end

#clearObject



49
50
51
52
53
# File 'lib/polipus/storage/memory_store.rb', line 49

def clear
  @semaphore.synchronize do
    @store = Hash.new
  end
end

#countObject



37
38
39
40
41
# File 'lib/polipus/storage/memory_store.rb', line 37

def count
  @semaphore.synchronize do
    @store.count
  end
end

#eachObject



43
44
45
46
47
# File 'lib/polipus/storage/memory_store.rb', line 43

def each
  @store.each do |k, v|
    yield k, v
  end
end

#exists?(page) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
# File 'lib/polipus/storage/memory_store.rb', line 19

def exists?(page)
  @semaphore.synchronize do
    @store.key?(uuid(page))
  end
end

#get(page) ⇒ Object



25
26
27
28
29
# File 'lib/polipus/storage/memory_store.rb', line 25

def get(page)
  @semaphore.synchronize do
    @store[uuid(page)]
  end
end

#remove(page) ⇒ Object



31
32
33
34
35
# File 'lib/polipus/storage/memory_store.rb', line 31

def remove(page)
  @semaphore.synchronize do
    @store.delete(uuid(page))
  end
end