Sha256: bc229848f78bd7ef7c22c59ccd46fcade03bfd9458d39a22aa1cff4dfa75566d

Contents?: true

Size: 845 Bytes

Versions: 1

Compression:

Stored size: 845 Bytes

Contents

require_relative '../helper'
module CelluloidPubsub
  # class that handles redis connection
  class Redis
    class << self
      include Celluloid::Logger
      include CelluloidPubsub::Helper

      @connected ||= false
      attr_accessor :connected, :connection

      alias_method :connected?, :connected

      def connect(&block)
        require 'eventmachine'
        require 'em-hiredis'
        run_the_eventmachine(&block)
        setup_em_exception_handler
      end

    private

      def run_the_eventmachine(&block)
        EM.run do
          @connection ||= EM::Hiredis.connect
          @connected = true
          block.call @connection
        end
      end

      def setup_em_exception_handler
        EM.error_handler do |error|
          debug error unless filtered_error?(error)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
celluloid_pubsub-0.3.3 lib/celluloid_pubsub/redis/redis.rb