Sha256: c25eb4e755f0f67c1fb9054e9f220ba177dc6f5da628fdebf4348a8e81d584d0
Contents?: true
Size: 1.48 KB
Versions: 7
Compression:
Stored size: 1.48 KB
Contents
module Moneta # @api private module HashAdapter attr_reader :backend # (see Proxy#key?) def key?(key, options = {}) @backend.has_key?(key) end # (see Proxy#load) def load(key, options = {}) @backend[key] end # (see Proxy#store) def store(key, value, options = {}) @backend[key] = value end # (see Proxy#delete) def delete(key, options = {}) @backend.delete(key) end # (see Proxy#clear) def clear(options = {}) @backend.clear self end # (see Defaults#values_at) def values_at(*keys, **options) return super unless @backend.respond_to? :values_at @backend.values_at(*keys) end # (see Defaults#fetch_values) def fetch_values(*keys, **options, &defaults) return super unless @backend.respond_to? :fetch_values defaults ||= {} # prevents KeyError @backend.fetch_values(*keys, &defaults) end # (see Defaults#slice) def slice(*keys, **options) return super unless @backend.respond_to? :slice @backend.slice(*keys) end # (see Defaults#merge!) def merge!(pairs, options = {}, &block) return super unless method = [:merge!, :update].find do |method| @backend.respond_to? method end hash = Hash === pairs ? pairs : Hash[pairs.to_a] case method when :merge! @backend.merge!(hash, &block) when :update @backend.update(hash, &block) end self end end end
Version data entries
7 entries across 7 versions & 1 rubygems