Class: ZSpec::Sink::MemorySink
- Inherits:
-
Object
- Object
- ZSpec::Sink::MemorySink
- Defined in:
- lib/zspec/sink/memory_sink.rb
Instance Method Summary collapse
- #brpop(key, timeout: 0) ⇒ Object
- #brpoplpush(source, destination, timeout: 0) ⇒ Object
- #decr(key) ⇒ Object
- #expire(key, seconds) ⇒ Object
- #get(key) ⇒ Object
- #hdel(key, field) ⇒ Object
- #hget(key, field) ⇒ Object
- #hgetall(key) ⇒ Object
- #hincrby(key, field, value) ⇒ Object
- #hset(key, field, value) ⇒ Object
- #incr(key) ⇒ Object
-
#initialize(state:, expirations:) ⇒ MemorySink
constructor
A new instance of MemorySink.
- #lpush(key, value) ⇒ Object
- #lrange(key, start, stop) ⇒ Object
- #lrem(key, n, value) ⇒ Object
- #rpop(key) ⇒ Object
- #rpush(key, value) ⇒ Object
- #set(key, value) ⇒ Object
- #time ⇒ Object
Constructor Details
#initialize(state:, expirations:) ⇒ MemorySink
Returns a new instance of MemorySink.
4 5 6 7 |
# File 'lib/zspec/sink/memory_sink.rb', line 4 def initialize(state:, expirations:) @state = state @expirations = expirations end |
Instance Method Details
#brpop(key, timeout: 0) ⇒ Object
37 38 39 |
# File 'lib/zspec/sink/memory_sink.rb', line 37 def brpop(key, timeout: 0) return [], rpop(key) end |
#brpoplpush(source, destination, timeout: 0) ⇒ Object
41 42 43 44 45 |
# File 'lib/zspec/sink/memory_sink.rb', line 41 def brpoplpush(source, destination, timeout: 0) _list, = brpop(source) lpush(destination, ) end |
#decr(key) ⇒ Object
72 73 74 75 |
# File 'lib/zspec/sink/memory_sink.rb', line 72 def decr(key) @state[key] ||= 0 @state[key] -= 1 end |
#expire(key, seconds) ⇒ Object
13 14 15 |
# File 'lib/zspec/sink/memory_sink.rb', line 13 def expire(key, seconds) @expirations[key] = seconds end |
#get(key) ⇒ Object
81 82 83 |
# File 'lib/zspec/sink/memory_sink.rb', line 81 def get(key) @state[key] end |
#hdel(key, field) ⇒ Object
59 60 61 |
# File 'lib/zspec/sink/memory_sink.rb', line 59 def hdel(key, field) (@state[key] ||= {}).delete(field) end |
#hget(key, field) ⇒ Object
47 48 49 |
# File 'lib/zspec/sink/memory_sink.rb', line 47 def hget(key, field) (@state[key] ||= {})[field] end |
#hgetall(key) ⇒ Object
51 52 53 |
# File 'lib/zspec/sink/memory_sink.rb', line 51 def hgetall(key) @state[key] ||= {} end |
#hincrby(key, field, value) ⇒ Object
63 64 65 |
# File 'lib/zspec/sink/memory_sink.rb', line 63 def hincrby(key, field, value) (@state[key] ||= {})[field] = (hget(key, field) || 0) + 1 end |
#hset(key, field, value) ⇒ Object
55 56 57 |
# File 'lib/zspec/sink/memory_sink.rb', line 55 def hset(key, field, value) (@state[key] ||= {})[field] = value end |
#incr(key) ⇒ Object
67 68 69 70 |
# File 'lib/zspec/sink/memory_sink.rb', line 67 def incr(key) @state[key] ||= 0 @state[key] += 1 end |
#lpush(key, value) ⇒ Object
17 18 19 |
# File 'lib/zspec/sink/memory_sink.rb', line 17 def lpush(key, value) (@state[key] ||= []).unshift(value) end |
#lrange(key, start, stop) ⇒ Object
25 26 27 |
# File 'lib/zspec/sink/memory_sink.rb', line 25 def lrange(key, start, stop) (@state[key] ||= [])[start..stop] end |
#lrem(key, n, value) ⇒ Object
21 22 23 |
# File 'lib/zspec/sink/memory_sink.rb', line 21 def lrem(key, n, value) (@state[key] ||= []).delete(value) end |
#rpop(key) ⇒ Object
33 34 35 |
# File 'lib/zspec/sink/memory_sink.rb', line 33 def rpop(key) (@state[key] ||= []).pop end |
#rpush(key, value) ⇒ Object
29 30 31 |
# File 'lib/zspec/sink/memory_sink.rb', line 29 def rpush(key, value) (@state[key] ||= []).push(value) end |
#set(key, value) ⇒ Object
77 78 79 |
# File 'lib/zspec/sink/memory_sink.rb', line 77 def set(key, value) @state[key] = value end |
#time ⇒ Object
9 10 11 |
# File 'lib/zspec/sink/memory_sink.rb', line 9 def time [@state[:time]] end |