class RedisWrapper::Entry
Constants
- DEFAULT_COMPRESS_LIMIT
- FLAG_COMPRESSED
- FLAG_MARSHALED
Attributes
flags[RW]
value[RW]
Public Class Methods
new(value, options = {})
click to toggle source
# File lib/redis_wrapper/entry.rb, line 12 def initialize(value, options = {}) @flags = options[:flags] || {} @value = value @options = options flag_extraction if @value.class == String end
option_keys()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 8 def self.option_keys [:expire_in,:flags, :raw] end
Public Instance Methods
compress(val)
click to toggle source
# File lib/redis_wrapper/entry.rb, line 54 def compress(val) if should_compress?(val) && !compressed? @flags[:compressed] = true return Zlib::Deflate.deflate(val) end val end
decompress(val)
click to toggle source
# File lib/redis_wrapper/entry.rb, line 46 def decompress(val) if compressed? @flags[:compressed] = false return Zlib::Inflate.inflate(val) end val end
demarshal(val)
click to toggle source
# File lib/redis_wrapper/entry.rb, line 38 def demarshal(val) if marshaled? @flags[:marshaled] = false return Marshal.load(val) end val end
extracted_result()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 19 def extracted_result @value = demarshal(decompress(@value)) end
flag_extraction()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 69 def flag_extraction if @value pflag = @value.slice(@value.length-3..@value.length) if pflag == FLAG_MARSHALED @flags[:marshaled] = true @value = @value.slice(0..-4) flag_extraction elsif pflag == FLAG_COMPRESSED @flags[:compressed] = true @value = @value.slice(0..-4) flag_extraction end end end
flags_string()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 31 def flags_string string = "" string += FLAG_MARSHALED if @flags[:marshaled] string += FLAG_COMPRESSED if @flags[:compressed] string end
marshal(val)
click to toggle source
# File lib/redis_wrapper/entry.rb, line 62 def marshal(val) if val && !marshaled? @flags[:marshaled] = true Marshal.dump(val) end end
prepare(value)
click to toggle source
# File lib/redis_wrapper/entry.rb, line 27 def prepare(value) compress(marshal(value)) if value end
prepared_result()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 23 def prepared_result prepare(@value) + flags_string end
Private Instance Methods
compressed?()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 85 def compressed? @flags[:compressed] == true end
marshaled?()
click to toggle source
# File lib/redis_wrapper/entry.rb, line 88 def marshaled? @flags[:marshaled] == true end
should_compress?(val)
click to toggle source
# File lib/redis_wrapper/entry.rb, line 91 def should_compress?(val) unless @options[:raw] || val.nil? compression_threshold = @options[:compression_threshold] || DEFAULT_COMPRESS_LIMIT return true if val.size >= compression_threshold end false end