# File lib/faye.rb, line 92 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
# 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
# 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
# File lib/faye.rb, line 56 def self.ensure_reactor_running! Engine.ensure_reactor_running! end
# File lib/faye.rb, line 60 def self.random(*args) Engine.random(*args) end
# File lib/faye.rb, line 84 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