h2g_ajaxchat 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/h2g_ajaxchat.rb +79 -31
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fed7c95dd7baa7e075472ce965f71916083e8f662a269292ef90bf195b89c1bc
|
4
|
+
data.tar.gz: 104cbd2876daee33558effccd165653bba0bcfd4ca4e691afcb67b257ab488df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b38375b60ea5ae5fac4040e0136e59ae62af25b457ff207feb4f43f397d2296a56fa75a0b4dbcfe670df62f8e3dc537b9871be78c54ae5095ce351d262fbcfaf
|
7
|
+
data.tar.gz: 3b8a18a0c8d2240de2947b497d90203f74418ff75f8f2eb3972924f488360969117debf8d49d51b2f1eaee659ad03866667da47a7bd55887868451064f0e334e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/h2g_ajaxchat.rb
CHANGED
@@ -109,13 +109,11 @@ class ChatCore
|
|
109
109
|
|
110
110
|
protected
|
111
111
|
|
112
|
-
def append_message(
|
113
|
-
|
114
|
-
|
115
|
-
id =
|
116
|
-
@
|
117
|
-
|
118
|
-
@messages << [Time.now, id, u, msg]
|
112
|
+
def append_message(t=Time.now, id=@session[:session_id].to_s,
|
113
|
+
u=@session[:username], msg)
|
114
|
+
|
115
|
+
@users[id] = u.to_s
|
116
|
+
@messages << [t, id, u, msg]
|
119
117
|
|
120
118
|
end
|
121
119
|
|
@@ -138,6 +136,7 @@ end
|
|
138
136
|
|
139
137
|
class WebPage
|
140
138
|
|
139
|
+
attr_reader :name
|
141
140
|
attr_accessor :css, :html, :js, :s
|
142
141
|
|
143
142
|
def initialize(name, h={} )
|
@@ -153,8 +152,12 @@ class WebPage
|
|
153
152
|
def to_js()
|
154
153
|
end
|
155
154
|
|
155
|
+
def s()
|
156
|
+
@s ||= html_template()
|
157
|
+
end
|
158
|
+
|
156
159
|
def to_s()
|
157
|
-
@s
|
160
|
+
@s
|
158
161
|
end
|
159
162
|
|
160
163
|
protected
|
@@ -189,17 +192,7 @@ class Index < WebPage
|
|
189
192
|
@name, @h = :index, h
|
190
193
|
end
|
191
194
|
|
192
|
-
def
|
193
|
-
@css ||= '
|
194
|
-
body {font-family: Arial;}
|
195
|
-
#chatbox {overflow: scroll; height: 40%}
|
196
|
-
div p span {colour: #dde}
|
197
|
-
'
|
198
|
-
end
|
199
|
-
|
200
|
-
def to_html()
|
201
|
-
|
202
|
-
b = binding
|
195
|
+
def html()
|
203
196
|
|
204
197
|
@html ||= <<EOF
|
205
198
|
<body onload="refresh()">
|
@@ -215,10 +208,24 @@ div p span {colour: #dde}
|
|
215
208
|
</div>
|
216
209
|
EOF
|
217
210
|
|
211
|
+
end
|
212
|
+
|
213
|
+
def to_css()
|
214
|
+
@css ||= '
|
215
|
+
body {font-family: Arial;}
|
216
|
+
#chatbox {overflow: scroll; height: 40%}
|
217
|
+
div p span {colour: #dde}
|
218
|
+
'
|
219
|
+
end
|
220
|
+
|
221
|
+
def to_html()
|
222
|
+
|
223
|
+
b = binding
|
224
|
+
|
218
225
|
ERB.new(@html).result(b)
|
219
226
|
end
|
220
227
|
|
221
|
-
def
|
228
|
+
def js()
|
222
229
|
|
223
230
|
@js ||= <<EOF
|
224
231
|
|
@@ -267,7 +274,11 @@ function ajaxCall2() {
|
|
267
274
|
|
268
275
|
EOF
|
269
276
|
|
270
|
-
|
277
|
+
end
|
278
|
+
|
279
|
+
def to_js()
|
280
|
+
@js
|
281
|
+
end
|
271
282
|
|
272
283
|
end
|
273
284
|
|
@@ -277,7 +288,7 @@ class Login < WebPage
|
|
277
288
|
@name = :login
|
278
289
|
end
|
279
290
|
|
280
|
-
def
|
291
|
+
def html()
|
281
292
|
|
282
293
|
@html ||= '
|
283
294
|
<div id="loginform">
|
@@ -292,6 +303,10 @@ class Login < WebPage
|
|
292
303
|
|
293
304
|
end
|
294
305
|
|
306
|
+
def to_html()
|
307
|
+
@html
|
308
|
+
end
|
309
|
+
|
295
310
|
end
|
296
311
|
|
297
312
|
class Logout < WebPage
|
@@ -300,7 +315,7 @@ class Logout < WebPage
|
|
300
315
|
@name = :logout
|
301
316
|
end
|
302
317
|
|
303
|
-
def
|
318
|
+
def html()
|
304
319
|
|
305
320
|
@html ||= '
|
306
321
|
<div id="logoutform">
|
@@ -314,6 +329,10 @@ class Logout < WebPage
|
|
314
329
|
|
315
330
|
end
|
316
331
|
|
332
|
+
def to_html()
|
333
|
+
@html
|
334
|
+
end
|
335
|
+
|
317
336
|
end
|
318
337
|
|
319
338
|
class LogoutPost < WebPage
|
@@ -322,18 +341,22 @@ class LogoutPost < WebPage
|
|
322
341
|
@name = :logout_post
|
323
342
|
end
|
324
343
|
|
325
|
-
def
|
344
|
+
def s()
|
326
345
|
|
327
346
|
@s ||= 'You have successfully logged out'
|
328
347
|
|
329
348
|
end
|
330
349
|
|
350
|
+
def to_s()
|
351
|
+
@s
|
352
|
+
end
|
353
|
+
|
331
354
|
end
|
332
355
|
|
333
356
|
|
334
357
|
class AjaxChat
|
335
358
|
|
336
|
-
attr_reader :rws
|
359
|
+
attr_reader :rws, :views
|
337
360
|
|
338
361
|
def initialize(chatobj, rws=DummyRws.new(self), config: nil, debug: false)
|
339
362
|
|
@@ -342,7 +365,7 @@ class AjaxChat
|
|
342
365
|
plugins = if config then
|
343
366
|
|
344
367
|
SimpleConfig.new(config).to_h.map do |name, settings|
|
345
|
-
|
368
|
+
puts 'name: ' + name.inspect if @debug
|
346
369
|
settings = {} if settings.is_a? String
|
347
370
|
|
348
371
|
pluginklass_name = 'AjaxChatPlugin' + name.to_s
|
@@ -362,21 +385,46 @@ class AjaxChat
|
|
362
385
|
@index, @login, @logout, @logout_post = \
|
363
386
|
[Index, Login, Logout, LogoutPost].map do |klass|
|
364
387
|
|
365
|
-
|
366
|
-
|
367
|
-
plugins.each {|plugin| plugin.apply obj }
|
368
|
-
|
369
|
-
obj
|
388
|
+
klass.new @h
|
370
389
|
|
371
390
|
end
|
372
391
|
|
392
|
+
@views = {
|
393
|
+
index: @index,
|
394
|
+
login: @login,
|
395
|
+
logout: @logout,
|
396
|
+
logout_post: @logout_post
|
397
|
+
}
|
398
|
+
|
399
|
+
plugins.each {|plugin| plugin.apply(self) if plugin.respond_to? :apply }
|
400
|
+
|
373
401
|
end
|
374
402
|
|
375
403
|
def chatter(newmsg=nil)
|
376
404
|
|
377
405
|
id, users = @rws.req.session[:session_id].to_s, @chat.users
|
406
|
+
|
407
|
+
chat = @chat
|
408
|
+
|
409
|
+
# check for new messages to be added via the plugins
|
410
|
+
@plugins.each do |plugin|
|
411
|
+
|
412
|
+
next unless plugin.respond_to? :messages
|
413
|
+
plugin.messages.each {|x| chat.append_message *x }
|
414
|
+
|
415
|
+
end
|
378
416
|
|
379
417
|
@chat.chatter(@rws.req, newmsg) do |t, uid, username, msg|
|
418
|
+
|
419
|
+
@plugins.each do |plugin|
|
420
|
+
|
421
|
+
plugin.messages.each do |x|
|
422
|
+
|
423
|
+
x.on_newmesage(t, uid, username, msg) if x.respond_to? :on_newmessage
|
424
|
+
|
425
|
+
end
|
426
|
+
|
427
|
+
end
|
380
428
|
|
381
429
|
s2 = if id == uid then
|
382
430
|
"you: %s" % msg
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|