Sha256: 4fd6550848d7a1e3fdb529bc5769f9b58b5b86234bb63919a2e13b576892b894

Contents?: true

Size: 729 Bytes

Versions: 2

Compression:

Stored size: 729 Bytes

Contents

safe_require 'em-hiredis', 'gem install em-hiredis'

##
# Midori Extension for Redis Driver
class Midori::Redis

  # Init a Redis Connection
  # @param [ Array ] args args EM::Hiredis.connect
  def initialize(*args)
    @connection = EM::Hiredis.connect(*args)
    @connection
  end

  # Call a redis request asynchronously
  # @param [ String ] sys method name
  # @param [ Array ] args args of the method calling
  def method_missing(sys, *args)
    await(Promise.new(->(resolve, _reject) {
      @connection.send(sys, *args).callback do |*ret_args|
        resolve.call(*ret_args)
      end
    }))
  end

  # Return raw pubsub mode
  # @return [ EM::Hiredis::Pubsub ] raw pubsub
  def pubsub
    @connection.pubsub
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
em-midori-0.1.7.1 lib/midori/extension/redis.rb
em-midori-0.1.7 lib/midori/extension/redis.rb