Sha256: fbc904bdc26cc2e418125e31dba29a195bdfdceb1506759d662d05c44ae6315f
Contents?: true
Size: 964 Bytes
Versions: 1
Compression:
Stored size: 964 Bytes
Contents
require 'kyotocabinet' module Moneta module Adapters # KyotoCabinet backend # @api public class KyotoCabinet < Memory # @param [Hash] options # @option options [String] :file Database file def initialize(options = {}) raise ArgumentError, 'Option :file is required' unless options[:file] @hash = ::KyotoCabinet::DB.new raise @hash.error.to_s unless @hash.open(options[:file], ::KyotoCabinet::DB::OWRITER | ::KyotoCabinet::DB::OCREATE) end # (see Proxy#key?) def key?(key, options = {}) @hash.check(key) >= 0 end # (see Proxy#delete) def delete(key, options = {}) @hash.seize(key) end # (see Proxy#create) def create(key, value, options = {}) @hash.add(key, value) end # (see Proxy#close) def close @hash.close nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
moneta-0.7.9 | lib/moneta/adapters/kyotocabinet.rb |