module Faye

Constants

BAYEUX_VERSION
CONNECTION_TYPES
JSONP_CALLBACK
MANDATORY_CONNECTION_TYPES
ROOT
VERSION

Attributes

logger[RW]

Public Class Methods

async_each(list, iterator, callback) click to toggle source
# File lib/faye.rb, line 96
def self.async_each(list, iterator, callback)
  n       = list.size
  i       = -1
  calls   = 0
  looping = false

  loop, resume = nil, nil

  iterate = lambda do
    calls -= 1
    i += 1
    if i == n
      callback.call if callback
    else
      iterator.call(list[i], resume)
    end
  end

  loop = lambda do
    unless looping
      looping = true
      iterate.call while calls > 0
      looping = false
    end
  end

  resume = lambda do
    calls += 1
    loop.call
  end
  resume.call
end
client_id_from_messages(messages) click to toggle source
# File lib/faye.rb, line 64
def self.client_id_from_messages(messages)
  first = [messages].flatten.find { |m| m['channel'] == '/meta/connect' }
  first && first['clientId']
end
copy_object(object) click to toggle source
# File lib/faye.rb, line 69
def self.copy_object(object)
  case object
  when Hash
    clone = {}
    object.each { |k,v| clone[k] = copy_object(v) }
    clone
  when Array
    clone = []
    object.each { |v| clone << copy_object(v) }
    clone
  else
    object
  end
end
ensure_reactor_running!() click to toggle source
# File lib/faye.rb, line 56
def self.ensure_reactor_running!
  Engine.ensure_reactor_running!
end
parse_url(url) click to toggle source
# File lib/faye.rb, line 84
def self.parse_url(url)
  String === url ? URI.parse(url) : url
end
random(*args) click to toggle source
# File lib/faye.rb, line 60
def self.random(*args)
  Engine.random(*args)
end
to_json(value) click to toggle source
# File lib/faye.rb, line 88
def self.to_json(value)
  case value
    when Hash, Array then MultiJson.dump(value)
    when String, NilClass then value.inspect
    else value.to_s
  end
end