Class: Streamdal::KeyValue
- Inherits:
-
Object
- Object
- Streamdal::KeyValue
- Defined in:
- lib/kv.rb
Instance Method Summary collapse
- #delete(key) ⇒ Object
- #exists(key) ⇒ Object
- #get(key) ⇒ Object
-
#initialize ⇒ KeyValue
constructor
A new instance of KeyValue.
- #items ⇒ Object
- #keys ⇒ Object
- #purge ⇒ Object
- #set(key, value) ⇒ Object
Constructor Details
#initialize ⇒ KeyValue
Returns a new instance of KeyValue.
5 6 7 8 |
# File 'lib/kv.rb', line 5 def initialize @kvs = {} @mtx = Mutex.new end |
Instance Method Details
#delete(key) ⇒ Object
22 23 24 25 26 |
# File 'lib/kv.rb', line 22 def delete(key) @mtx.synchronize do @kvs.delete(key) end end |
#exists(key) ⇒ Object
40 41 42 43 44 |
# File 'lib/kv.rb', line 40 def exists(key) @mtx.synchronize do @kvs.key?(key) end end |
#get(key) ⇒ Object
16 17 18 19 20 |
# File 'lib/kv.rb', line 16 def get(key) @mtx.synchronize do @kvs[key] end end |
#items ⇒ Object
34 35 36 37 38 |
# File 'lib/kv.rb', line 34 def items @mtx.synchronize do @kvs.values end end |
#keys ⇒ Object
28 29 30 31 32 |
# File 'lib/kv.rb', line 28 def keys @mtx.synchronize do @kvs.keys end end |
#purge ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/kv.rb', line 46 def purge @mtx.synchronize do num_keys = @kvs.keys.length @kvs = {} num_keys end end |
#set(key, value) ⇒ Object
10 11 12 13 14 |
# File 'lib/kv.rb', line 10 def set(key, value) @mtx.synchronize do @kvs[key] = value end end |