class Moneta::Adapters::LMDB
LMDB
backend @api public
Constants
- PUT_FLAGS
Public Class Methods
new(options = {})
click to toggle source
@param [Hash] options @option options [String] :dir Environment directory @option options [::LMDB::Environment] :backend Use existing backend instance @option options [String or nil] :db (‘moneta’) Database name
Calls superclass method
Moneta::Adapter::new
# File lib/moneta/adapters/lmdb.rb, line 24 def initialize(options = {}) super @db = backend.database(config.db, create: true) end
Public Instance Methods
clear(options = {})
click to toggle source
(see Proxy#clear
)
# File lib/moneta/adapters/lmdb.rb, line 56 def clear(options = {}) @db.clear self end
close()
click to toggle source
(see Proxy#close
)
# File lib/moneta/adapters/lmdb.rb, line 83 def close backend.close nil end
create(key, value, options = {})
click to toggle source
(see Defaults#create
)
# File lib/moneta/adapters/lmdb.rb, line 71 def create(key, value, options = {}) backend.transaction do if @db.get(key) false else @db.put(key, value, Utils.only(options, *PUT_FLAGS)) true end end end
delete(key, options = {})
click to toggle source
(see Proxy#delete
)
# File lib/moneta/adapters/lmdb.rb, line 46 def delete(key, options = {}) backend.transaction do if value = @db.get(key) @db.delete(key) value end end end
each_key() { |record| ... }
click to toggle source
(see Proxy#each_key
)
# File lib/moneta/adapters/lmdb.rb, line 89 def each_key return enum_for(:each_key) { @db.size } unless block_given? @db.cursor do |cursor| while record = cursor.next yield record[0] end end self end
increment(key, amount = 1, options = {})
click to toggle source
(see Proxy#increment
)
# File lib/moneta/adapters/lmdb.rb, line 62 def increment(key, amount = 1, options = {}) backend.transaction do value = Integer(@db.get(key) || 0) + amount @db.put(key, value.to_s, Utils.only(options, *PUT_FLAGS)) value end end
key?(key, options = {})
click to toggle source
(see Proxy#key?
)
# File lib/moneta/adapters/lmdb.rb, line 30 def key?(key, options = {}) @db.get(key) != nil end
load(key, options = {})
click to toggle source
(see Proxy#load
)
# File lib/moneta/adapters/lmdb.rb, line 35 def load(key, options = {}) @db.get(key) end
merge!(pairs, options = {})
click to toggle source
(see Proxy#merge!
)
Calls superclass method
Moneta::Defaults#merge!
# File lib/moneta/adapters/lmdb.rb, line 112 def merge!(pairs, options = {}) backend.transaction { super } end
slice(*keys, **options)
click to toggle source
(see Proxy#slice
)
Calls superclass method
Moneta::Defaults#slice
# File lib/moneta/adapters/lmdb.rb, line 107 def slice(*keys, **options) backend.transaction { super } end
store(key, value, options = {})
click to toggle source
(see Proxy#store
)
# File lib/moneta/adapters/lmdb.rb, line 40 def store(key, value, options = {}) @db.put(key, value, Utils.only(options, *PUT_FLAGS)) value end
values_at(*keys, **options)
click to toggle source
(see Proxy#values_at
)
Calls superclass method
Moneta::Defaults#values_at
# File lib/moneta/adapters/lmdb.rb, line 102 def values_at(*keys, **options) backend.transaction { super } end