remi-aim 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/VERSION.yml +1 -1
  2. data/lib/aim.rb +19 -6
  3. data/lib/aim/net_toc.rb +6 -0
  4. metadata +2 -2
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 0
2
+ :patch: 1
3
3
  :major: 0
4
4
  :minor: 1
data/lib/aim.rb CHANGED
@@ -18,7 +18,7 @@ class AIM
18
18
  #
19
19
  # log_chatroom :some_chatroom, :output => 'some_chatroom.log'
20
20
  #
21
- # when :im_received do |im|
21
+ # when :im do |im|
22
22
  # im_user im.user, "thanks for the IM, #{ im.user.name }"
23
23
  # end
24
24
  #
@@ -33,11 +33,19 @@ class AIM
33
33
  # this auto logs in too
34
34
  #
35
35
  def login_as_user username, password, &block
36
- user = get_user username, password
37
- user.login!
38
- user.instance_eval &block if block
39
- user.wait!
40
- user
36
+ @block = block if block
37
+ @user = get_user username, password
38
+ @user.login!
39
+
40
+ reload! # take the @user, clear all of the user's event subscriptions, and reload the block
41
+
42
+ @user.wait!
43
+ @user
44
+ end
45
+
46
+ def reload!
47
+ @user.clear_events!
48
+ @user.instance_eval &@block
41
49
  end
42
50
 
43
51
  # returns an AIM::User, but does not login
@@ -59,6 +67,11 @@ class AIM
59
67
  connection.connect
60
68
  end
61
69
 
70
+ # undoes all event subscriptions
71
+ def clear_events!
72
+ connection.clear_callbacks!
73
+ end
74
+
62
75
  # do something on an event
63
76
  #
64
77
  # user.when :im do |message, buddy|
data/lib/aim/net_toc.rb CHANGED
@@ -531,7 +531,9 @@ module Net
531
531
  puts "chat_in val => #{ val.inspect }"
532
532
  room_id, screen_name, auto, *message = *val.split(":")
533
533
  message = message.join(":")
534
+ message = message.gsub('<br>',"\n") # ... before getting rid of html
534
535
  message = message.chomp.gsub(/<[^>]+>/,"") # get rid of html
536
+ message = message.gsub("\n",'<br />') # ... turn newlines back into br's
535
537
  buddy = @buddy_list.buddy_named(screen_name)
536
538
  room = @rooms[room_id] || room_id
537
539
  auto_response = auto == "T"
@@ -567,6 +569,10 @@ module Net
567
569
  def idle_time=(seconds)
568
570
  @conn.toc_set_idle seconds
569
571
  end
572
+
573
+ def clear_callbacks!
574
+ @callbacks = { }
575
+ end
570
576
 
571
577
  # Waits for the event-handling thread for +limit+ seconds, or indefinitely if no argument is given. Use this to prevent your program from exiting prematurely.
572
578
  # For example, the following script will exit right after connecting:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remi-aim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - remi
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-11 00:00:00 -08:00
12
+ date: 2009-02-24 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15