Sha256: 3174dce4b53aba6ce8fd7696cd8bdcae5c661400a3b4ab64e2d2ee7e7457c119
Contents?: true
Size: 582 Bytes
Versions: 3
Compression:
Stored size: 582 Bytes
Contents
# frozen_string_literal: true class Cistern::Data::Hash Cistern::Data.backends[:hash] = self def initialize(_options = {}, &default) @hash = {} @default = default end def clear hash.clear end def store(key, *args) assign_default(key) hash.store(key, *args) end alias_method :[]=, :store def fetch(key, *args) assign_default(key) hash.fetch(key, *args) end alias_method :[], :fetch protected attr_reader :hash, :default def assign_default(key) default.call(hash, key) if !hash.key?(key) && default end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cistern-2.10.0 | lib/cistern/data/hash.rb |
cistern-2.8.2 | lib/cistern/data/hash.rb |
cistern-2.8.1 | lib/cistern/data/hash.rb |