class TChatter::Chat
Attributes
all_users[R]
config[R]
connection[R]
last_message_id[R]
messages[R]
response[R]
url[R]
user[R]
user_id[R]
Public Class Methods
new(username, config_class)
click to toggle source
attr_accessor :url
# File lib/t_chatter/chat.rb, line 6 def initialize(username, config_class) @user = username @messages = [] @last_message_id = 0 @all_users = [] @config = config_class.configuration @user_id = config[:user_id] || UNIQUE_ID set_url connect subscribe_user end
Public Instance Methods
connect()
click to toggle source
# File lib/t_chatter/chat.rb, line 41 def connect @connection = Faraday::Connection.new(@url) end
each_user()
click to toggle source
# File lib/t_chatter/chat.rb, line 79 def each_user @all_users.map{ |y| y['name'] }.join(', ') end
get_subscribed_users()
click to toggle source
# File lib/t_chatter/chat.rb, line 73 def get_subscribed_users response = connection.get('/all_users') response = JSON.parse(response.body) @all_users = response["users"] end
quit()
click to toggle source
# File lib/t_chatter/chat.rb, line 87 def quit connection.get('/quit', {user_id: user_id}) end
receive_message()
click to toggle source
# File lib/t_chatter/chat.rb, line 53 def receive_message sleep 2 response = connection.get('/receive', { last_message_id: @last_message_id }) @response = JSON.parse(response.body) last_id = @response["last_message_id"] unless last_id == last_message_id message = @response["message"] puts message @last_message_id = last_id update_messages(message) unless message.blank? end get_subscribed_users if all_users.size < @response["total_users"].to_i end
send_message(message)
click to toggle source
# File lib/t_chatter/chat.rb, line 45 def send_message(message) response = connection.post('/send', {message: message, user: user}) @response = JSON.parse(response.body) @last_message_id = @response["last_message_id"] @messages << message @last_message = message end
set_url()
click to toggle source
# File lib/t_chatter/chat.rb, line 22 def set_url begin @url = URI.parse(@config[:host]) rescue URI::InvalidURIError puts <<-EOS You dont seem to have a valid URL in your .chatter.yml file\n You may run ``setup_t_chatter`` to set a default url which will be used everytime you try to connect. However you are now being connected to the global chatter stream EOS @url = URI.parse(DEFAULT_URL) end end
show_all_users()
click to toggle source
# File lib/t_chatter/chat.rb, line 83 def show_all_users puts @all_users.map{ |y| "#{y['name']} joined at #{y['joined']}"}.join("\n") end
subscribe_user()
click to toggle source
# File lib/t_chatter/chat.rb, line 18 def subscribe_user connection.post('/new_user', {user_id: user_id , user: user}) end
unknown_url()
click to toggle source
# File lib/t_chatter/chat.rb, line 36 def unknown_url puts "The URL doesn't appear to be valid a URL" end
update_messages(message)
click to toggle source
# File lib/t_chatter/chat.rb, line 67 def update_messages(message) message = message.split("\n") @last_message = message.last @messages += message end