class RedisHA::HashMap

Constants

DEFAULT_MERGE_STRATEGY

this lambda defines how the individual response hashes are merged the default is to merge in reverse-chronological order

Public Instance Methods

get() click to toggle source
# File lib/redis_ha/crdt/hash_map.rb, line 16
def get
  versions = pool.get(@key).map do |v|
    next if v.nil? || v == ""
    Marshal.load(v) rescue nil
  end.compact
  merge_strategy[versions].tap do |merged|
    merged.delete(:_time)
  end
end
merge_strategy() click to toggle source
# File lib/redis_ha/crdt/hash_map.rb, line 26
def merge_strategy
  @merge_strategy || DEFAULT_MERGE_STRATEGY
end
set(data = {}) click to toggle source
# File lib/redis_ha/crdt/hash_map.rb, line 10
def set(data = {})
  data.merge!(:_time => Time.now.to_i)
  pool.set(@key, Marshal.dump(data))
  true
end