Sha256: 63ed5923e19e37faef87577776dd13cb82a06c7c7988caa8d7ed6691346415cd

Contents?: true

Size: 1.01 KB

Versions: 3

Compression:

Stored size: 1.01 KB

Contents

module Internals

  module Index
  
    # TODO Needs a reconnect to be run after forking.
    #
    class Redis < Backend
    
      def initialize bundle_name, config
        super bundle_name, config
      
        # TODO
        #
        @index         = Redis::ListHash.new "#{config.identifier}:#{bundle_name}:index"
        @weights       = Redis::StringHash.new "#{config.identifier}:#{bundle_name}:weights"
        @similarity    = Redis::ListHash.new "#{config.identifier}:#{bundle_name}:similarity"
        @configuration = Redis::StringHash.new "#{config.identifier}:#{bundle_name}:configuration"
      end
    
      # Delegate to the right collection.
      #
      def ids sym
        index.collection sym
      end
    
      # Delegate to the right member value.
      #
      # Note: Converts to float.
      #
      def weight sym
        weights.member(sym).to_f
      end
    
      # Delegate to a member value.
      #
      def setting sym
        configuration.member sym
      end
    
    end
  
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
picky-1.5.2 lib/picky/internals/index/redis.rb
picky-1.5.1 lib/picky/internals/index/redis.rb
picky-1.5.0 lib/picky/internals/index/redis.rb