h2g_ajaxchat 0.3.0 → 0.3.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.
- 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
|