Method: Net::TOC::Client#on_chat

Defined in:
lib/aim/net_toc.rb

#on_chatObject

remi Pass a block to be called every time an IM is received. This will replace any previous on_im handler.

Raises:

  • (ArgumentException)


527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
# File 'lib/aim/net_toc.rb', line 527

def on_chat
  raise ArgumentException, "on_chat requires a block argument" unless block_given?
  keep_track_of_rooms_joined unless keeping_track_of_rooms_joined?
  add_callback(:chat_in) do |val|
    puts "chat_in val => #{ val.inspect }"
    room_id, screen_name, auto, *message = *val.split(":")
    message = message.join(":")
    message = message.gsub('<br>',"\n") # ... before getting rid of html
    message = message.chomp.gsub(/<[^>]+>/,"") # get rid of html
    message = message.gsub("\n",'<br />') # ... turn newlines back into br's
    buddy = @buddy_list.buddy_named(screen_name)
    room = @rooms[room_id] || room_id
    auto_response = auto == "T"
    yield message, buddy, room, auto_response
  end
end