Sha256: 9c44e56112be4cde3e042caa7cfd6c9f6f3e720f88e03c37f65e922910d0b72e
Contents?: true
Size: 1.32 KB
Versions: 4
Compression:
Stored size: 1.32 KB
Contents
require 'leveldb' module Moneta module Adapters # LevelDB backend # @api public class LevelDB < Adapter include HashAdapter include IncrementSupport include CreateSupport include EachKeySupport # @!method initialize(options = {}) # @param [Hash] options # @option options [String] :dir - Database path # @option options All other options passed to `LevelDB::DB#new` # @option options [::LevelDB::DB] :backend Use existing backend instance backend { |dir:| ::LevelDB::DB.new(dir) } # (see Proxy#key?) def key?(key, options = {}) backend.includes?(key) end # (see Proxy#clear) def clear(options = {}) backend.each { |k,| delete(k, options) } self end # (see Proxy#close) def close backend.close nil end # (see Proxy#each_key) def each_key return enum_for(:each_key) { backend.size } unless block_given? backend.each { |key, _| yield key } self end # (see Proxy#values_at) def values_at(*keys, **options) ret = nil backend.batch { ret = super } ret end # (see Proxy#merge!) def merge!(*keys, **options) backend.batch { super } self end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
moneta-1.6.0 | lib/moneta/adapters/leveldb.rb |
moneta-1.5.2 | lib/moneta/adapters/leveldb.rb |
moneta-1.5.1 | lib/moneta/adapters/leveldb.rb |
moneta-1.5.0 | lib/moneta/adapters/leveldb.rb |