module GiveLive::ClassMethods

Public Instance Methods

faye_publish(channel, message) click to toggle source
# File lib/give-live-back-to-object.rb, line 17
def faye_publish(channel, message)
  client.publish channel, message
end
faye_subscribe(channel, &block) click to toggle source
# File lib/give-live-back-to-object.rb, line 12
def faye_subscribe(channel, &block)
  wrapped_block = wrap(&block)
  client.subscribe channel, &wrapped_block
end

Private Instance Methods

client() click to toggle source
# File lib/give-live-back-to-object.rb, line 35
def client
  @client ||= begin
    Faye.ensure_reactor_running!
    Faye::Client.new(ENV['FAYE_URL'])
  end
end
wrap() { |*args| ... } click to toggle source
# File lib/give-live-back-to-object.rb, line 23
def wrap(&block)
  return lambda do |*args|
    begin
      yield(*args)
    rescue => e
      message = "[ERROR IN FAYE THREAD] #{e.message}\n"
      message << e.backtrace.join("\n")
      defined?(logger) ? logger.error(message) : puts(message)
    end
  end
end