libfchat 1.1 → 1.2

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.
@@ -30,6 +30,7 @@ module Libfchat
30
30
  attr_accessor :ignore
31
31
  attr_accessor :ops
32
32
  attr_accessor :users
33
+ attr_accessor :rooms
33
34
 
34
35
  ##
35
36
  # Initialize the object with the name and version.
@@ -39,6 +40,7 @@ module Libfchat
39
40
  @clientname = clientname
40
41
  @version = version
41
42
  @users = Hash.new
43
+ @rooms = Hash.new
42
44
  end
43
45
 
44
46
  ##
@@ -182,8 +184,62 @@ module Libfchat
182
184
  # Handle user logging off
183
185
  def got_FLN(message)
184
186
  @users.delete(message['character'])
187
+ @rooms.each do |room|
188
+ room['characters'].delete(message['character'])
189
+ end
185
190
  end
186
191
 
192
+ ##
193
+ # Store data about newly joined chatroom
194
+ def got_JCH(message)
195
+ begin
196
+ @rooms[message['channel']]['characters'].push(message['character']['identity'])
197
+ puts "Someone else joined a room"
198
+ rescue
199
+ @rooms[message['channel']] = {
200
+ 'title' => message['title'],
201
+ 'description' => '',
202
+ 'characters' => [],
203
+ 'ops' => [],
204
+ }
205
+ puts "I joined a new room"
206
+ end
207
+ end
208
+
209
+ ##
210
+ # Store ops list for room
211
+ def got_COL(message)
212
+ @rooms[message['channel']]['ops'] = message['oplist']
213
+ end
214
+
215
+ ##
216
+ # Store userlist for newly joined chatroom
217
+ def got_ICH(message)
218
+ message['users'].each do |user|
219
+ @rooms[message['channel']]['characters'].push(user['identity'])
220
+ end
221
+ end
222
+
223
+ ##
224
+ # Handle user joining chatroom
225
+ def got_LCH(message)
226
+ @rooms[message['channel']]['characters'].delete(message['character'])
227
+ end
228
+
229
+ ##
230
+ # Handle user leaving chatroom
231
+ def got_LCH(message)
232
+ @rooms[message['channel']]['characters'].delete(message['character'])
233
+ end
234
+
235
+ ##
236
+ # Store description for newly joined chatroom
237
+ def got_CDS(message)
238
+ @rooms[message['channel']]['description'] = message['description']
239
+ end
240
+
241
+ ##
242
+ ##
187
243
  # ====================================================== #
188
244
  # All commands that can be sent by a client have helpers #
189
245
  # ====================================================== #
@@ -2,5 +2,5 @@ module Libfchat
2
2
  # We're doing this because we might write tests that deal
3
3
  # with other versions of Libfchat and we are unsure how to
4
4
  # handle this better.
5
- VERSION = "1.1" unless defined?(::Libfchat::VERSION)
5
+ VERSION = "1.2" unless defined?(::Libfchat::VERSION)
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libfchat
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: '1.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: turn
16
- requirement: &14910760 !ruby/object:Gem::Requirement
16
+ requirement: &9466340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.5
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *14910760
24
+ version_requirements: *9466340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: miniunit
27
- requirement: &14910080 !ruby/object:Gem::Requirement
27
+ requirement: &9560780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.2.1
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *14910080
35
+ version_requirements: *9560780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_json
38
- requirement: &14909560 !ruby/object:Gem::Requirement
38
+ requirement: &9560240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *14909560
46
+ version_requirements: *9560240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faye-websocket
49
- requirement: &14909080 !ruby/object:Gem::Requirement
49
+ requirement: &9559760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.4.6
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *14909080
57
+ version_requirements: *9559760
58
58
  description: A library for connecting to F-chat ( http://f-list.net )
59
59
  email: cheetahmorph@gmail.com
60
60
  executables: []