module Moneta::NilValues
This contains overrides of methods in Defaults
where additional nil checks are required, because nil values are possible in the store. @api private
Public Instance Methods
fetch_values(*keys, **options) { |key| ... }
click to toggle source
# File lib/moneta/nil_values.rb, line 6 def fetch_values(*keys, **options) values = values_at(*keys, **options) return values unless block_given? keys.zip(values).map do |key, value| if value == nil && !key?(key) yield key else value end end end
merge!(pairs, options = {}) { |key, existing, value| ... }
click to toggle source
# File lib/moneta/nil_values.rb, line 24 def merge!(pairs, options = {}) pairs.each do |key, value| if block_given? && key?(key, options) existing = load(key, options) value = yield(key, existing, value) end store(key, value, options) end self end
slice(*keys, **options)
click to toggle source
# File lib/moneta/nil_values.rb, line 18 def slice(*keys, **options) keys.zip(values_at(*keys, **options)).reject do |key, value| value == nil && !key?(key) end end