forked from External/greenlight
38 lines
1.0 KiB
Ruby
38 lines
1.0 KiB
Ruby
# Stores data on waiting users on the server side so
|
|
# we can pass it to clients when they reload the page.
|
|
|
|
class WaitingList
|
|
@waiting = {}
|
|
|
|
def self.waiting
|
|
@waiting
|
|
end
|
|
|
|
def self.add(room, user, meeting)
|
|
@waiting[room] = {} unless @waiting.has_key?(room)
|
|
@waiting[room][meeting] = [] unless @waiting[room].has_key?(meeting)
|
|
@waiting[room][meeting] << user
|
|
end
|
|
|
|
def self.remove(room, user, meeting)
|
|
if @waiting.has_key?(room) then
|
|
if @waiting[room].has_key?(meeting) then
|
|
if @waiting[room][meeting].include?(user) then
|
|
@waiting[room][meeting].slice!(@waiting[room][meeting].index(user))
|
|
@waiting[room].delete(meeting) if @waiting[room][meeting].length == 0
|
|
@waiting.delete(room) if @waiting[room].length == 0
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.empty(room, meeting)
|
|
if @waiting.has_key?(room) then
|
|
if @waiting[room].has_key?(meeting) then
|
|
@waiting[room].delete(meeting)
|
|
@waiting.delete(room) if @waiting[room].length == 0
|
|
end
|
|
end
|
|
end
|
|
end
|