Sha256: 01e0ac081109b7fc327329e8ae89121c162840967f98560ac5be9095f78aa064
Contents?: true
Size: 1.15 KB
Versions: 14
Compression:
Stored size: 1.15 KB
Contents
require 'kyotocabinet' module Moneta module Adapters # KyotoCabinet backend # @api public class KyotoCabinet < Memory # @param [Hash] options # @option options [String] :file Database file # @option options [::KyotoCabinet::DB] :backend Use existing backend instance def initialize(options = {}) if options[:backend] @backend = options[:backend] else raise ArgumentError, 'Option :file is required' unless options[:file] @backend = ::KyotoCabinet::DB.new raise @backend.error.to_s unless @backend.open(options[:file], ::KyotoCabinet::DB::OWRITER | ::KyotoCabinet::DB::OCREATE) end end # (see Proxy#key?) def key?(key, options = {}) @backend.check(key) >= 0 end # (see Proxy#delete) def delete(key, options = {}) @backend.seize(key) end # (see Proxy#create) def create(key, value, options = {}) @backend.add(key, value) end # (see Proxy#close) def close @backend.close nil end end end end
Version data entries
14 entries across 14 versions & 1 rubygems