class Colossus::SimpleWriterServer

Attributes

faye_client[R]
faye_client_extension[R]
faye_extension[R]

Public Class Methods

new(faye_extension) click to toggle source
# File lib/colossus/simple_writer_server.rb, line 5
def initialize(faye_extension)
  @faye_extension        = faye_extension
  @faye_client           = faye_extension.faye.get_client
  @faye_client_extension = FayeClientExtension.new
  @faye_client.add_extension(faye_client_extension)
end

Public Instance Methods

colossus() click to toggle source
# File lib/colossus/simple_writer_server.rb, line 48
def colossus
  faye_extension.colossus
end
presence(writer_token, optional_user_ids = nil) click to toggle source
# File lib/colossus/simple_writer_server.rb, line 12
def presence(writer_token, optional_user_ids = nil)
  raise 'Invalid token' unless valid?(writer_token)
  faye_client_extension.writer_token = writer_token

  case optional_user_ids
  when Array
    colossus.get_multi(*optional_user_ids)
  when String
    colossus.get(optional_user_ids)
  when NilClass
    colossus.get_all
  else
    raise 'Invalid user_ids data'
  end
end
push(writer_token, user_ids, message) click to toggle source
# File lib/colossus/simple_writer_server.rb, line 28
def push(writer_token, user_ids, message)
  raise 'Invalid token' unless valid?(writer_token)
  faye_client_extension.writer_token = writer_token

  case user_ids
  when Array
    user_ids.each do |user_id|
      faye_client.publish("/users/#{user_id}", message)
    end
  when String
    faye_client.publish("/users/#{user_ids}", message)
  else
    raise 'Invalid user_ids data'
  end
end
valid?(writer_token) click to toggle source
# File lib/colossus/simple_writer_server.rb, line 44
def valid?(writer_token)
  colossus.verifier.verify_writer_token(writer_token)
end