Sha256: c9165a6256bd6ca3e750c44552c13607da2b3179039f92be520e3adae9d9fb61

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

class Redis
  class Store < self
    module Namespace
      def set(key, val, options = nil)
        namespace(key) { |key| super(key, val, options) }
      end

      def setnx(key, val, options = nil)
        namespace(key) { |key| super(key, val, options) }
      end

      def get(key, options = nil)
        namespace(key) { |key| super(key, options) }
      end

      def exists(key)
        namespace(key) { |key| super(key) }
      end

      def incrby(key, increment)
        namespace(key) { |key| super(key, increment) }
      end

      def decrby(key, increment)
        namespace(key) { |key| super(key, increment) }
      end

      def keys(pattern = "*")
        namespace(pattern) { |pattern| super(pattern) }
      end

      def del(*keys)
        super *keys.map {|key| interpolate(key) }
      end

      def mget(*keys)
        super *keys.map {|key| interpolate(key) }
      end

      def to_s
        "#{super} with namespace #{@namespace}"
      end

      private
        def namespace(key)
          yield interpolate(key)
        end

        def interpolate(key)
          key.match(%r{^#{@namespace}\:}) ? key : "#{@namespace}:#{key}"
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
redis-store-1.0.0.beta4 lib/redis/store/namespace.rb
nono-redis-store-1.0.0 lib/redis/store/namespace.rb
redis-store-1.0.0.beta3 lib/redis/store/namespace.rb