LMDB backend @api public
@param [Hash] options @option options [String] :dir Environment directory @option options [::LMDB::Environment] :backend Use existing backend instance @option options [String or nil] :db Database name
# File lib/moneta/adapters/lmdb.rb, line 20 def initialize(options) db = options.delete(:db) @backend = options.delete(:backend) || begin raise ArgumentError, 'Option :dir is required' unless dir = options.delete(:dir) FileUtils.mkpath(dir) ::LMDB.new(dir, options) end @db = @backend.database(db, :create => true) end
(see Moneta::Proxy#clear)
# File lib/moneta/adapters/lmdb.rb, line 59 def clear(options = {}) @db.clear self end
(see Moneta::Proxy#close)
# File lib/moneta/adapters/lmdb.rb, line 87 def close @backend.close nil end
(see Moneta::Defaults#create)
# File lib/moneta/adapters/lmdb.rb, line 75 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
(see Moneta::Proxy#delete)
# File lib/moneta/adapters/lmdb.rb, line 49 def delete(key, options = {}) @backend.transaction do if value = @db.get(key) @db.delete(key) value end end end
(see Moneta::Proxy#increment)
# File lib/moneta/adapters/lmdb.rb, line 65 def increment(key, amount = 1, options = {}) @backend.transaction do value = @db.get(key) value = Utils.to_int(value) + amount @db.put(key, value.to_s, Utils.only(options, *PUT_FLAGS)) value end end
(see Moneta::Proxy#key?)
# File lib/moneta/adapters/lmdb.rb, line 33 def key?(key, options = {}) !@db.get(key).nil? end
(see Moneta::Proxy#load)
# File lib/moneta/adapters/lmdb.rb, line 38 def load(key, options = {}) @db.get(key) end
(see Moneta::Proxy#store)
# File lib/moneta/adapters/lmdb.rb, line 43 def store(key, value, options = {}) @db.put(key, value, Utils.only(options, *PUT_FLAGS)) value end