Sha256: d6bb79497bda6a7c31ace7f2e6068f407521a1745874da48d524ea13b99ae018

Contents?: true

Size: 953 Bytes

Versions: 1

Compression:

Stored size: 953 Bytes

Contents

module Backend

  # TODO Needs a reconnect to be run after forking.
  #
  class Redis < Backend

    def initialize bundle_name, category
      super bundle_name, category

      # Refine a few Redis "types".
      #
      @index         = Redis::ListHash.new "#{category.identifier}:#{bundle_name}:index"
      @weights       = Redis::StringHash.new "#{category.identifier}:#{bundle_name}:weights"
      @similarity    = Redis::ListHash.new "#{category.identifier}:#{bundle_name}:similarity"
      @configuration = Redis::StringHash.new "#{category.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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
picky-2.6.0 lib/picky/backend/redis.rb