module Pubsubstub

Constants

VERSION

Attributes

channels_scrollback_size[RW]
channels_scrollback_ttl[RW]
error_handler[RW]
heartbeat_frequency[RW]
logger[RW]
reconnect_timeout[RW]
redis_url[RW]
use_persistent_connections[RW]

Public Class Methods

handle_error(error) click to toggle source
# File lib/pubsubstub.rb, line 57
def handle_error(error)
  logger.error("Uncaught exception: #{error.class}: #{error.message}\n#{error.backtrace.join("\n\t")}\n")
  error_handler && error_handler.call(error)
end
heartbeat_event() click to toggle source
# File lib/pubsubstub.rb, line 53
def heartbeat_event
  Event.new('ping', name: 'heartbeat', retry_after: reconnect_timeout)
end
new_redis() click to toggle source
# File lib/pubsubstub.rb, line 45
def new_redis
  Redis.new(url: redis_url)
end
publish(channel_name, *args) click to toggle source
# File lib/pubsubstub.rb, line 27
def publish(channel_name, *args)
  Channel.new(channel_name).publish(Event.new(*args))
  nil
end
redis() click to toggle source
# File lib/pubsubstub.rb, line 37
def redis
  @redis || synchronize { @redis ||= new_redis }
end
redis=(client) click to toggle source
# File lib/pubsubstub.rb, line 41
def redis=(client)
  synchronize { @redis = client }
end
redis_url=(url) click to toggle source
# File lib/pubsubstub.rb, line 32
def redis_url=(url)
  @redis_url = url.to_s
  @redis = nil
end
report_errors() { || ... } click to toggle source
# File lib/pubsubstub.rb, line 62
def report_errors
  yield
rescue => error
  handle_error(error)
  raise
end
subscriber() click to toggle source
# File lib/pubsubstub.rb, line 49
def subscriber
  @subscriber || synchronize { @subscriber ||= Subscriber.new }
end