Module: Redis::Helpers::Serialize

Includes:
Marshal
Included in:
Redis::HashKey, List, Set, SortedSet, Value
Defined in:
lib/redis/helpers/serialize.rb

Instance Method Summary collapse

Instance Method Details

#from_redis(value, marshal = false) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/redis/helpers/serialize.rb', line 16

def from_redis(value, marshal=false)
  # This was removed because we can't reliably determine
  # if a person said @value = "123.4" maybe for space/etc.
  #begin
  #  case value
  #  when /^\d+$/
  #    return Integer(value)
  #  when /^(?:\d+\d.\d*|\d*\.\d+)$/
  #    return Float(value)
  #  end
  #rescue
  #  # continue below
  #end
  return value unless options[:marshal] || marshal
  case value
  when Array
    value.collect{|v| from_redis(v)}
  when Hash
    value.inject({}) { |h, (k, v)| h[k] = from_redis(v); h }
  else
    restore(value) rescue value
  end
end

#to_redis(value, marshal = false) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/redis/helpers/serialize.rb', line 6

def to_redis(value, marshal=false)
  return value unless options[:marshal] || marshal
  case value
  when String, Fixnum, Bignum, Float
    value
  else
    dump(value)
  end
end