Sha256: 454a1691142440b4dbd2886048458c350eeed0385429a2325e881ebf722de2b5

Contents?: true

Size: 851 Bytes

Versions: 2

Compression:

Stored size: 851 Bytes

Contents

module Daijobu
  
  module Adapter
    
    # Daijobu::Adapter::TokyoCabinetAdapter wraps getting and setting to a Rufus::Tokyo::Cabinet store.
    class TokyoCabinetAdapter
      
      # Daijobu::Adapter::TokyoCabinetAdapter.new takes a Rufus::Tokyo::Cabinet object.
      def initialize(store)
        @store = store
      end
      
      # Gets the key or keys given, using Cabinet#[] or Cabinet#lget.
      # Multiple values should be returned in a hash, but that's really up to the Cabinet object.
      def get(*keys)
        if keys.size == 0
          nil
        elsif keys.size == 1
          @store[keys.first]
        else
          @store.lget(keys)
        end
      end
      
      # Sets the key to the given value (using Cabinet#[]=).
      def set(key, value)
        @store[key] = value
      end
      
    end
    
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sander6-daijobu-0.2.1 lib/daijobu/adapters/tokyo_cabinet.rb
sander6-daijobu-0.3.0 lib/daijobu/adapters/tokyo_cabinet.rb