Sha256: 577041ac483932f6e4a2d57cad561f68a80c06004cad7bee7417f2bf1506fe80

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'dm-tokyo-adapter/cabinet'
require 'rufus/tokyo/tyrant'

module DataMapper
  module Adapters
    module Tokyo

      # A DataMapper Tokyo Tyrant table store adapter.
      #
      # http://tokyocabinet.sourceforge.net/tyrantdoc/
      # http://tokyocabinet.sourceforge.net/spex-en.html#features_tctdb
      #
      # The Tokyo Cabinet table storage engine doesn't require a predefined schema and as such properties in your
      # resource are only used by the adapter for typecasting. There is no need to migrate your resource when you
      # create, update or delete properties.
      #
      # == See
      #
      # DataMapper::Adapters::Tokyo::Query:: Table Query.
      class TyrantAdapter < Tokyo::CabinetAdapter
        protected

          #--
          # TODO: Default port to 1978?
          def create_connection(model)
            credentials = [@options[:socket] || @options.values_at(:host, :port)]
            Rufus::Tokyo::TyrantTable.new(*credentials.flatten)
          end
      end # TyrantAdapter
    end # Tokyo

    TokyoTyrantAdapter = Tokyo::TyrantAdapter
    const_added(:TokyoTyrantAdapter)
  end # Adapters
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shanna-dm-tokyo-adapter-0.3.2 lib/dm-tokyo-adapter/tyrant.rb