Sha256: 53cd40f42c6c18fe1c374a4d8ede3d3e414672eb61724cb08b82d77849c8c402

Contents?: true

Size: 721 Bytes

Versions: 1

Compression:

Stored size: 721 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

1 entries across 1 versions & 1 rubygems

Version Path
em-midori-0.1.8 lib/midori/extension/redis.rb