Module: Moneta::EachKeySupport Private
- Included in:
- Adapters::DBM, Adapters::Daybreak, Adapters::GDBM, Adapters::LevelDB, Adapters::Memory, Adapters::SDBM, Adapters::TDB, Adapters::TokyoCabinet
- Defined in:
- lib/moneta/mixins.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
This provides an each_key implementation that works in most cases.
Class Method Summary collapse
- .included(base) ⇒ Object private
Instance Method Summary collapse
- #each_key ⇒ Object private
Class Method Details
.included(base) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
441 442 443 |
# File 'lib/moneta/mixins.rb', line 441 def self.included(base) base.supports(:each_key) if base.respond_to?(:supports) end |
Instance Method Details
#each_key ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 |
# File 'lib/moneta/mixins.rb', line 423 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 |