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