Sha256: 052a9a5febf3255f34c859139dc7aa8f4bd41c00d956c9de39774c1935dfd4f7
Contents?: true
Size: 988 Bytes
Versions: 3
Compression:
Stored size: 988 Bytes
Contents
# frozen_string_literal: true require "active_support/core_ext/hash" class Kredis::Types::Hash < Kredis::Types::Proxying prepend Kredis::DefaultValues proxying :hget, :hset, :hmget, :hdel, :hgetall, :hkeys, :hvals, :del, :exists? attr_accessor :typed def [](key) string_to_type(hget(key), typed) end def []=(key, value) update key => value end def update(**entries) hset entries.transform_values { |val| type_to_string(val, typed) } if entries.flatten.any? end def values_at(*keys) strings_to_types(hmget(keys) || [], typed) end def delete(*keys) hdel keys if keys.flatten.any? end def remove del end alias clear remove def entries (hgetall || {}).transform_values { |val| string_to_type(val, typed) }.with_indifferent_access end alias to_h entries def keys hkeys || [] end def values strings_to_types(hvals || [], typed) end private def set_default update(**default) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
kredis-1.7.0 | lib/kredis/types/hash.rb |
kredis-1.6.1 | lib/kredis/types/hash.rb |
kredis-1.6.0 | lib/kredis/types/hash.rb |