Sha256: 9f612ce4e9f8e07edffb02a20d3853b122e0c3ec5c723360950e3ece2f3c47ed

Contents?: true

Size: 843 Bytes

Versions: 3

Compression:

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

3 entries across 3 versions & 1 rubygems

Version Path
celluloid_pubsub-0.3.2 lib/celluloid_pubsub/redis/redis.rb
celluloid_pubsub-0.3.1 lib/celluloid_pubsub/redis/redis.rb
celluloid_pubsub-0.3.0 lib/celluloid_pubsub/redis/redis.rb