Class: TChatter::Chat
- Inherits:
-
Object
- Object
- TChatter::Chat
- Defined in:
- lib/t_chatter/chat.rb
Instance Attribute Summary collapse
-
#all_users ⇒ Object
readonly
Returns the value of attribute all_users.
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#last_message_id ⇒ Object
readonly
Returns the value of attribute last_message_id.
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
-
#user_id ⇒ Object
readonly
Returns the value of attribute user_id.
Instance Method Summary collapse
- #connect ⇒ Object
- #each_user ⇒ Object
- #get_subscribed_users ⇒ Object
-
#initialize(username, config_class) ⇒ Chat
constructor
attr_accessor :url.
- #quit ⇒ Object
- #receive_message ⇒ Object
- #send_message(message) ⇒ Object
- #set_url ⇒ Object
- #show_all_users ⇒ Object
- #subscribe_user ⇒ Object
- #unknown_url ⇒ Object
- #update_messages(message) ⇒ Object
Constructor Details
#initialize(username, config_class) ⇒ Chat
attr_accessor :url
6 7 8 9 10 11 12 13 14 15 16 |
# 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 |
Instance Attribute Details
#all_users ⇒ Object (readonly)
Returns the value of attribute all_users.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def all_users @all_users end |
#config ⇒ Object (readonly)
Returns the value of attribute config.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def config @config end |
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def connection @connection end |
#last_message_id ⇒ Object (readonly)
Returns the value of attribute last_message_id.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def @last_message_id end |
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def @messages end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def response @response end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def url @url end |
#user ⇒ Object (readonly)
Returns the value of attribute user.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def user @user end |
#user_id ⇒ Object (readonly)
Returns the value of attribute user_id.
3 4 5 |
# File 'lib/t_chatter/chat.rb', line 3 def user_id @user_id end |
Instance Method Details
#connect ⇒ Object
41 42 43 |
# File 'lib/t_chatter/chat.rb', line 41 def connect @connection = Faraday::Connection.new(@url) end |
#each_user ⇒ Object
79 80 81 |
# File 'lib/t_chatter/chat.rb', line 79 def each_user @all_users.map{ |y| y['name'] }.join(', ') end |
#get_subscribed_users ⇒ Object
73 74 75 76 77 |
# 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 ⇒ Object
87 88 89 |
# File 'lib/t_chatter/chat.rb', line 87 def quit connection.get('/quit', {user_id: user_id}) end |
#receive_message ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/t_chatter/chat.rb', line 53 def 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 == = @response["message"] puts @last_message_id = last_id () unless .blank? end get_subscribed_users if all_users.size < @response["total_users"].to_i end |
#send_message(message) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/t_chatter/chat.rb', line 45 def () response = connection.post('/send', {message: , user: user}) @response = JSON.parse(response.body) @last_message_id = @response["last_message_id"] @messages << @last_message = end |
#set_url ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 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 ⇒ Object
83 84 85 |
# 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 ⇒ Object
18 19 20 |
# File 'lib/t_chatter/chat.rb', line 18 def subscribe_user connection.post('/new_user', {user_id: user_id , user: user}) end |
#unknown_url ⇒ Object
36 37 38 |
# 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) ⇒ Object
67 68 69 70 71 |
# File 'lib/t_chatter/chat.rb', line 67 def () = .split("\n") @last_message = .last @messages += end |