Module: FakeRedis::Redis::StringsMethods

Included in:
FakeRedis::Redis
Defined in:
lib/fakeredis/strings.rb

Instance Method Summary collapse

Instance Method Details

#append(key, value) ⇒ Object



5
6
7
8
# File 'lib/fakeredis/strings.rb', line 5

def append(key, value)
  @data[key] = (@data[key] || "")
  @data[key] = @data[key] + value.to_s
end

#decr(key) ⇒ Object



10
11
12
13
# File 'lib/fakeredis/strings.rb', line 10

def decr(key)
  @data[key] = (@data[key] || "0")
  @data[key] = (@data[key].to_i - 1).to_s
end

#decrby(key, by) ⇒ Object



15
16
17
18
# File 'lib/fakeredis/strings.rb', line 15

def decrby(key, by)
  @data[key] = (@data[key] || "0")
  @data[key] = (@data[key].to_i - by.to_i).to_s
end

#get(key) ⇒ Object Also known as: []



20
21
22
23
# File 'lib/fakeredis/strings.rb', line 20

def get(key)
  #return if expired?(key)
  @data[key]
end

#getbit(key, offset) ⇒ Object



25
26
27
28
29
# File 'lib/fakeredis/strings.rb', line 25

def getbit(key, offset)
  #return if expired?(key)
  return unless @data[key]
  @data[key].unpack('B8')[0].split("")[offset]
end

#getrange(key, start, ending) ⇒ Object



31
32
33
34
# File 'lib/fakeredis/strings.rb', line 31

def getrange(key, start, ending)
  return unless @data[key]
  @data[key][start..ending]
end

#getset(key, value) ⇒ Object



36
37
38
39
40
41
# File 'lib/fakeredis/strings.rb', line 36

def getset(key, value)
  return unless @data[key]
  old_value = @data[key]
  @data[key] = value
  return old_value
end

#incr(key) ⇒ Object



43
44
45
46
# File 'lib/fakeredis/strings.rb', line 43

def incr(key)
  @data[key] = (@data[key] || "0")
  @data[key] = (@data[key].to_i + 1).to_s
end

#incrby(key, by) ⇒ Object



48
49
50
51
# File 'lib/fakeredis/strings.rb', line 48

def incrby(key, by)
  @data[key] = (@data[key] || "0")
  @data[key] = (@data[key].to_i + by.to_i).to_s
end

#mapped_mget(*keys) ⇒ Object



57
58
59
60
# File 'lib/fakeredis/strings.rb', line 57

def mapped_mget(*keys)
  reply = mget(*keys)
  Hash[*keys.zip(reply).flatten]
end

#mget(*keys) ⇒ Object



53
54
55
# File 'lib/fakeredis/strings.rb', line 53

def mget(*keys)
  @data.values_at(*keys)
end

#mset(*pairs) ⇒ Object



62
63
64
65
66
67
# File 'lib/fakeredis/strings.rb', line 62

def mset(*pairs)
  pairs.each_slice(2) do |pair|
    @data[pair[0].to_s] = pair[1].to_s
  end
  "OK"
end

#msetnx(*pairs) ⇒ Object



69
70
71
72
73
74
75
# File 'lib/fakeredis/strings.rb', line 69

def msetnx(*pairs)
  keys = []
  pairs.each_with_index{|item, index| keys << item.to_s if index % 2 == 0}
  return if keys.any?{|key| @data.key?(key) }
  mset(*pairs)
  true
end

#set(key, value) ⇒ Object Also known as: []=



77
78
79
80
# File 'lib/fakeredis/strings.rb', line 77

def set(key, value)
  @data[key] = value.to_s
  "OK"
end

#setbit(key, offset, bit) ⇒ Object



82
83
84
85
86
87
88
89
# File 'lib/fakeredis/strings.rb', line 82

def setbit(key, offset, bit)
  return unless @data[key]
  old_val = @data[key].unpack('B*')[0].split("")
  old_val[offset] = bit.to_s
  new_val = ""
  old_val.each_slice(8){|b| new_val = new_val + b.join("").to_i(2).chr }
  @data[key] = new_val
end

#setex(key, seconds, value) ⇒ Object



91
92
93
94
# File 'lib/fakeredis/strings.rb', line 91

def setex(key, seconds, value)
  @data[key] = value
  expire(key, seconds)
end

#setnx(key, value) ⇒ Object



96
97
98
# File 'lib/fakeredis/strings.rb', line 96

def setnx(key, value)
  set(key, value) unless @data.key?(key)
end

#setrange(key, offset, value) ⇒ Object



100
101
102
103
104
# File 'lib/fakeredis/strings.rb', line 100

def setrange(key, offset, value)
  return unless @data[key]
  s = @data[key][offset,value.size]
  @data[key][s] = value
end

#strlen(key) ⇒ Object



106
107
108
109
# File 'lib/fakeredis/strings.rb', line 106

def strlen(key)
  return unless @data[key]
  @data[key].size
end