Class: ZSpec::Sink::MemorySink

Inherits:
Object
  • Object
show all
Defined in:
lib/zspec/sink/memory_sink.rb

Instance Method Summary collapse

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, message = brpop(source)
  lpush(destination, message)
  message
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

#timeObject



9
10
11
# File 'lib/zspec/sink/memory_sink.rb', line 9

def time
  [@state[:time]]
end