Sha256: 9db07007288bd1580cd3865fb83e3a3fee69bb402a1d21e71418f74ab54a0dfb

Contents?: true

Size: 763 Bytes

Versions: 4

Compression:

Stored size: 763 Bytes

Contents

require 'tdb'

module Moneta
  module Adapters
    # TDB backend
    # @api public
    class TDB < Adapter
      include HashAdapter
      include IncrementSupport
      include EachKeySupport

      supports :create

      # @!method initialize(options = {})
      #   @param [Hash] options
      #   @option options [String] :file Database file
      #   @option options [::TDB] :backend Use existing backend instance
      backend { |file:, **options| ::TDB.new(file, options) }

      # (see Proxy#close)
      def close
        backend.close
        nil
      end

      # (see Proxy#create)
      def create(key, value, options = {})
        backend.insert!(key, value)
        true
      rescue ::TDB::ERR::EXISTS
        false
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
moneta-1.6.0 lib/moneta/adapters/tdb.rb
moneta-1.5.2 lib/moneta/adapters/tdb.rb
moneta-1.5.1 lib/moneta/adapters/tdb.rb
moneta-1.5.0 lib/moneta/adapters/tdb.rb