Sha256: 8abebbbd23b0c58319e65b670e0c2e8f6a0500e7ca5b4d6aa30b8c07da63c6b4
Contents?: true
Size: 713 Bytes
Versions: 7
Compression:
Stored size: 713 Bytes
Contents
module Moneta # This provides an each_key implementation that works in most cases. # @api private module EachKeySupport def each_key return enum_for(:each_key) unless block_given? if @backend.respond_to?(:each_key) @backend.each_key { |key| yield key } elsif @backend.respond_to?(:keys) if keys = @backend.keys keys.each { |key| yield key } end elsif @backend.respond_to?(:each) @backend.each { |key, _| yield key } else raise ::NotImplementedError, "No enumerable found on backend" end self end def self.included(base) base.supports(:each_key) if base.respond_to?(:supports) end end end
Version data entries
7 entries across 7 versions & 1 rubygems