Sha256: 418a089dc1de8df27ab0c87ba0b4f5ebf4470ad9ed111f2ba706aa0beb84f89a
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true module Lite module Memoize class Instance include Lite::Memoize::Mixin def initialize; end def [](key) store[key] end def []=(key, val) store[key] = val end def clear store.clear end alias flush clear def delete(key) store.delete(key) end # :nocov: def each store.each { |key, val| yield(key, val) } end # :nocov: def empty? store.empty? end alias blank? empty? def key?(key) store.key?(key) end alias hit? key? def keys store.keys end def merge!(hash) store.merge!(hash) end def memoize(as: nil, args: nil, reload: false, &block) key = caller_key(args || block, as: as) if reload store[key] = yield else store[key] ||= yield end end def present? !blank? end alias hits? present? def size store.size end def slice!(*keys) keys.each { |key| store.delete(key) } store end def to_hash store end alias as_json to_hash alias hits to_hash def values store.values end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lite-memoize-1.0.1 | lib/lite/memoize/instance.rb |