Sha256: 521ff3e9ab6ee228d81bd81ee6361672ed782bd808b2fed5eca668b77424f9be

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

class MockRedis
  module MiscMethods
    def hash
      @@hash ||= {}
    end

    def del(*keys)
      keys.flatten.each do |key|
        self.hash.delete key
      end
      "OK"
    end

    def exists(key)
      self.hash.has_key?(key)
    end

    def type(key)
      case thing = self.hash[key]
        when nil then "none"
        when String then "string"
        when Array then "list"
        when Set then "set"
        when Hash then "hash"
      end
    end

    def rename(old, new)
      self.hash[new] = self.hash[old]
      self.hash.delete(old)
    end

    def renamenx(old, new)
      rename(old, new) unless exists(new)
    end

    def keys(pattern)
      regexp = Regexp.new(pattern.split("*").map { |r| Regexp.escape(r) }.join(".*"))
      self.hash.keys.select { |key| key =~ regexp }
    end

    def randomkey
      self.hash.keys[rand(dbsize)]
    end

    def dbsize
      self.hash.keys.count
    end

    def flushdb
      self.hash.clear
    end
    alias flushall flushdb

    def multi
      yield if block_given?
    end

    def ping
      "PONG"
    end

    def pipelined
      yield
    end
  end

  include MiscMethods
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
modesty-0.1.0 vendor/mock_redis/lib/mock_redis/misc.rb