gloo 3.4.1 → 3.5.0
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
- data/lib/VERSION +1 -1
- data/lib/VERSION_NOTES +8 -0
- data/lib/gloo/app/args.rb +2 -2
- data/lib/gloo/app/engine.rb +21 -2
- data/lib/gloo/convert/converter.rb +1 -2
- data/lib/gloo/core/dictionary.rb +1 -1
- data/lib/gloo/core/event_manager.rb +19 -0
- data/lib/gloo/core/factory.rb +2 -2
- data/lib/gloo/core/gloo_system.rb +1 -1
- data/lib/gloo/core/obj.rb +47 -5
- data/lib/gloo/core/parser.rb +1 -1
- data/lib/gloo/core/pn.rb +1 -1
- data/lib/gloo/exec/dispatch.rb +17 -0
- data/lib/gloo/exec/runner.rb +1 -1
- data/lib/gloo/objs/data/mysql.rb +2 -2
- data/lib/gloo/objs/data/pg.rb +1 -1
- data/lib/gloo/objs/data/query.rb +2 -2
- data/lib/gloo/objs/data/query_result.rb +6 -1
- data/lib/gloo/objs/data/sqlite.rb +1 -1
- data/lib/gloo/objs/data/table.rb +2 -2
- data/lib/gloo/objs/ror/eval.rb +1 -1
- data/lib/gloo/objs/security/password.rb +5 -8
- data/lib/gloo/objs/web_svr/element.rb +1 -1
- data/lib/gloo/objs/web_svr/page.rb +1 -1
- data/lib/gloo/objs/web_svr/svr.rb +8 -3
- data/lib/gloo/persist/file_loader.rb +1 -1
- data/lib/gloo/persist/file_storage.rb +1 -1
- data/lib/gloo/verbs/check.rb +54 -0
- data/lib/gloo/verbs/redirect.rb +1 -0
- data/lib/gloo/verbs/tell.rb +11 -36
- data/lib/gloo/web_svr/handler.rb +3 -1
- data/lib/gloo/web_svr/request.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b527dd8c4837506689358a05681e7e81ba5804aeb617815db80e014a6f0f381b
|
4
|
+
data.tar.gz: 9d0d089ff54f1c669ee3b1009411e8a0310ed01792b008946f3fee8feff89313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0632bc38a33051cbe970e0f29e01fac34d29ad9988df31773518c5cdc4d501a9462ff9a3c17fd54fa5db8b5c5326fa890eb8a1d395d7dedef057b5e41da16fc
|
7
|
+
data.tar.gz: 6370739e3e635f6659ed5f28c62fd7d858cd8cb7b02e2115c29119434b8459e5cdb78dc9d1f3a547424425e41242d000216b9f89899734aa7d1e9206b4282662
|
data/lib/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.5.0
|
data/lib/VERSION_NOTES
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
3.5.0 - 2024.10.18
|
2
|
+
- check obj for message alternate to tell
|
3
|
+
- new base object messages
|
4
|
+
- fixes issue with single row returned from query
|
5
|
+
- adds on_error event
|
6
|
+
- use aliases in pwd obj
|
7
|
+
|
8
|
+
|
1
9
|
3.4.1 - 2024.09.23
|
2
10
|
- Removes old, unused sound objects
|
3
11
|
- Adds support for lib folder in gloo rather than in the project folder
|
data/lib/gloo/app/args.rb
CHANGED
@@ -51,12 +51,12 @@ module Gloo
|
|
51
51
|
return true unless app?
|
52
52
|
|
53
53
|
if @app_path.nil?
|
54
|
-
@engine.
|
54
|
+
@engine.err "App Path required to run in App mode."
|
55
55
|
return false
|
56
56
|
end
|
57
57
|
|
58
58
|
unless File.directory? @app_path
|
59
|
-
@engine.
|
59
|
+
@engine.err "'#{@app_path}' is not a valid directory."
|
60
60
|
return false
|
61
61
|
end
|
62
62
|
|
data/lib/gloo/app/engine.rb
CHANGED
@@ -201,7 +201,7 @@ module Gloo
|
|
201
201
|
begin
|
202
202
|
@parser.run @last_cmd
|
203
203
|
rescue => e
|
204
|
-
|
204
|
+
log_exception e
|
205
205
|
end
|
206
206
|
end
|
207
207
|
|
@@ -282,11 +282,30 @@ module Gloo
|
|
282
282
|
# Report an error.
|
283
283
|
# Write it to the log and set the heap error value.
|
284
284
|
#
|
285
|
-
def err( msg )
|
285
|
+
def err( msg, backtrace=nil )
|
286
286
|
@log.error msg
|
287
287
|
@heap.error.set_to msg
|
288
|
+
|
289
|
+
@event_manager.on_error( msg, backtrace)
|
288
290
|
end
|
289
291
|
|
292
|
+
#
|
293
|
+
# Log an exception.
|
294
|
+
# This function does not log the full backtrace, but
|
295
|
+
# does write part of it to the log.
|
296
|
+
#
|
297
|
+
def log_exception ex
|
298
|
+
# Get the stack trace, and if needed truncate to fit.
|
299
|
+
msg_lines = ex.backtrace
|
300
|
+
if msg_lines.count > 27
|
301
|
+
msg_lines = msg_lines[0..13] + [ '... truncated ...' ] + msg_lines[-13..-1]
|
302
|
+
end
|
303
|
+
backtrace = msg_lines.join( "\n" )
|
304
|
+
@log.error backtrace
|
305
|
+
|
306
|
+
err( ex.message, backtrace)
|
307
|
+
end
|
308
|
+
|
290
309
|
end
|
291
310
|
end
|
292
311
|
end
|
data/lib/gloo/core/dictionary.rb
CHANGED
@@ -72,6 +72,25 @@ module Gloo
|
|
72
72
|
arr.each { |o| Gloo::Exec::Dispatch.message( @engine, 'run', o ) }
|
73
73
|
end
|
74
74
|
|
75
|
+
#
|
76
|
+
# Run the on_error scripts in any open objects.
|
77
|
+
# For each on_error script found, look for the error_data container
|
78
|
+
# and set the error message and backtrace.
|
79
|
+
#
|
80
|
+
def on_error msg, backtrace
|
81
|
+
@engine.log.debug 'on_error event'
|
82
|
+
arr = Gloo::Core::ObjFinder.by_name( @engine, 'on_error' )
|
83
|
+
arr.each do |o|
|
84
|
+
data = o.parent.find_child 'error_data'
|
85
|
+
if data
|
86
|
+
data.find_child( 'message' ).set_value msg
|
87
|
+
data.find_child( 'backtrace' ).set_value backtrace
|
88
|
+
end
|
89
|
+
|
90
|
+
Gloo::Exec::Dispatch.message( @engine, 'run', o )
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
75
94
|
end
|
76
95
|
end
|
77
96
|
end
|
data/lib/gloo/core/factory.rb
CHANGED
@@ -164,7 +164,7 @@ module Gloo
|
|
164
164
|
#
|
165
165
|
def create_new( name, value, type, parent )
|
166
166
|
unless parent
|
167
|
-
@engine.
|
167
|
+
@engine.err "Could not create object. Bad path: #{name}"
|
168
168
|
return nil
|
169
169
|
end
|
170
170
|
|
@@ -202,7 +202,7 @@ module Gloo
|
|
202
202
|
end
|
203
203
|
|
204
204
|
unless t.can_create?
|
205
|
-
@engine.
|
205
|
+
@engine.err "'#{type_name}' cannot be created."
|
206
206
|
return nil
|
207
207
|
end
|
208
208
|
|
data/lib/gloo/core/obj.rb
CHANGED
@@ -216,6 +216,30 @@ module Gloo
|
|
216
216
|
return nil
|
217
217
|
end
|
218
218
|
|
219
|
+
#
|
220
|
+
# Find a child, resolve any alias references.
|
221
|
+
# This returns the object, not the value.
|
222
|
+
#
|
223
|
+
def find_child_resolve_alias( name )
|
224
|
+
o = find_child name
|
225
|
+
return nil unless o
|
226
|
+
|
227
|
+
o = Gloo::Objs::Alias.resolve_alias( @engine, o )
|
228
|
+
return o
|
229
|
+
end
|
230
|
+
|
231
|
+
#
|
232
|
+
# Find a child, resolve any alias references,
|
233
|
+
# and return the object's value.
|
234
|
+
#
|
235
|
+
def find_child_value( name )
|
236
|
+
o = find_child name
|
237
|
+
return nil unless o
|
238
|
+
|
239
|
+
o = Gloo::Objs::Alias.resolve_alias( @engine, o )
|
240
|
+
return o&.value
|
241
|
+
end
|
242
|
+
|
219
243
|
#
|
220
244
|
# Get the index of the child with the given name.
|
221
245
|
#
|
@@ -264,7 +288,7 @@ module Gloo
|
|
264
288
|
# Get a list of message names that this object receives.
|
265
289
|
#
|
266
290
|
def self.messages
|
267
|
-
return %w[reload unload]
|
291
|
+
return %w[reload unload blank? contains?]
|
268
292
|
end
|
269
293
|
|
270
294
|
#
|
@@ -282,7 +306,7 @@ module Gloo
|
|
282
306
|
@params = params
|
283
307
|
return self.dispatch msg if self.can_receive_message? msg
|
284
308
|
|
285
|
-
@engine.
|
309
|
+
@engine.err "Object #{self.name} cannot receive message #{msg}"
|
286
310
|
return false
|
287
311
|
end
|
288
312
|
|
@@ -295,7 +319,7 @@ module Gloo
|
|
295
319
|
self.public_send( o )
|
296
320
|
return true
|
297
321
|
else
|
298
|
-
@engine.
|
322
|
+
@engine.err "Message #{msg} not implemented"
|
299
323
|
return false
|
300
324
|
end
|
301
325
|
end
|
@@ -305,7 +329,7 @@ module Gloo
|
|
305
329
|
#
|
306
330
|
def msg_unload
|
307
331
|
if self.root?
|
308
|
-
@engine.
|
332
|
+
@engine.err 'Cannot unload the root object.'
|
309
333
|
return
|
310
334
|
end
|
311
335
|
|
@@ -318,13 +342,31 @@ module Gloo
|
|
318
342
|
#
|
319
343
|
def msg_reload
|
320
344
|
if self.root?
|
321
|
-
@engine.
|
345
|
+
@engine.err 'Cannot reload the root object.'
|
322
346
|
return
|
323
347
|
end
|
324
348
|
|
325
349
|
@engine.persist_man.reload self
|
326
350
|
end
|
327
351
|
|
352
|
+
#
|
353
|
+
# Check to see if the value is blank.
|
354
|
+
#
|
355
|
+
def msg_blank?
|
356
|
+
val_blank = value.blank?
|
357
|
+
@engine.heap.it.set_to val_blank
|
358
|
+
return val_blank
|
359
|
+
end
|
360
|
+
|
361
|
+
#
|
362
|
+
# Check to see if there are children.
|
363
|
+
#
|
364
|
+
def msg_contains?
|
365
|
+
has_children = child_count.positive?
|
366
|
+
@engine.heap.it.set_to has_children
|
367
|
+
return has_children
|
368
|
+
end
|
369
|
+
|
328
370
|
|
329
371
|
# ---------------------------------------------------------------------
|
330
372
|
# Render
|
data/lib/gloo/core/parser.rb
CHANGED
data/lib/gloo/core/pn.rb
CHANGED
data/lib/gloo/exec/dispatch.rb
CHANGED
@@ -12,6 +12,23 @@ module Gloo
|
|
12
12
|
module Exec
|
13
13
|
class Dispatch
|
14
14
|
|
15
|
+
OBJ_NOT_FOUND_ERR = 'Object was not found: '.freeze
|
16
|
+
|
17
|
+
#
|
18
|
+
# Send a message to an object of a given name (and path).
|
19
|
+
# Once the object is found, the message is dispatched.
|
20
|
+
#
|
21
|
+
def self.send_message( engine, msg, to_obj_pn, params = nil )
|
22
|
+
pn = Gloo::Core::Pn.new( engine, to_obj_pn )
|
23
|
+
target_obj = pn.resolve
|
24
|
+
|
25
|
+
unless target_obj
|
26
|
+
engine.err "#{OBJ_NOT_FOUND_ERR} #{to_obj_pn}"
|
27
|
+
return
|
28
|
+
end
|
29
|
+
Gloo::Exec::Dispatch.message( engine, msg, target_obj, params )
|
30
|
+
end
|
31
|
+
|
15
32
|
#
|
16
33
|
# Dispatch the given message to the given object.
|
17
34
|
#
|
data/lib/gloo/exec/runner.rb
CHANGED
data/lib/gloo/objs/data/mysql.rb
CHANGED
@@ -160,7 +160,7 @@ module Gloo
|
|
160
160
|
|
161
161
|
heads = rs.fields if rs
|
162
162
|
rescue => e
|
163
|
-
@engine.
|
163
|
+
@engine.log_exception e
|
164
164
|
end
|
165
165
|
|
166
166
|
return [ heads, data ]
|
@@ -242,7 +242,7 @@ module Gloo
|
|
242
242
|
}
|
243
243
|
Mysql2::Client.new( h )
|
244
244
|
rescue => e
|
245
|
-
@engine.
|
245
|
+
@engine.log_exception e
|
246
246
|
@engine.heap.it.set_to false
|
247
247
|
return false
|
248
248
|
end
|
data/lib/gloo/objs/data/pg.rb
CHANGED
data/lib/gloo/objs/data/query.rb
CHANGED
@@ -81,7 +81,7 @@ module Gloo
|
|
81
81
|
result = db.query( sql_value, param_array )
|
82
82
|
process_result( result, db )
|
83
83
|
rescue => e
|
84
|
-
@engine.
|
84
|
+
@engine.log_exception e
|
85
85
|
return
|
86
86
|
end
|
87
87
|
end
|
@@ -105,7 +105,7 @@ module Gloo
|
|
105
105
|
app.add_db_time elapsed if app
|
106
106
|
return result
|
107
107
|
rescue => e
|
108
|
-
@engine.
|
108
|
+
@engine.log_exception e
|
109
109
|
return
|
110
110
|
end
|
111
111
|
end
|
@@ -33,8 +33,13 @@ module Gloo
|
|
33
33
|
|
34
34
|
#
|
35
35
|
# Does the data contain a single row?
|
36
|
+
# OR, if the result is empty, return false.
|
36
37
|
#
|
37
38
|
def single_row_result?
|
39
|
+
if @result_can && ( @result_can.child_count == 0 )
|
40
|
+
return false
|
41
|
+
end
|
42
|
+
|
38
43
|
return @data.count == 1
|
39
44
|
end
|
40
45
|
|
@@ -108,7 +113,7 @@ module Gloo
|
|
108
113
|
def update_single_row
|
109
114
|
row = @data[0]
|
110
115
|
@heads.each_with_index do |h, i|
|
111
|
-
child = @result_can.find_child h
|
116
|
+
child = @result_can.find_child h
|
112
117
|
child.set_value row[i] if child
|
113
118
|
end
|
114
119
|
end
|
data/lib/gloo/objs/data/table.rb
CHANGED
@@ -67,7 +67,7 @@ module Gloo
|
|
67
67
|
result = o.run_query
|
68
68
|
return result
|
69
69
|
rescue => e
|
70
|
-
@engine.
|
70
|
+
@engine.log_exception e
|
71
71
|
return nil
|
72
72
|
end
|
73
73
|
else
|
@@ -196,7 +196,7 @@ module Gloo
|
|
196
196
|
helper = Gloo::WebSvr::TableRenderer.new( @engine )
|
197
197
|
return helper.data_to_table params
|
198
198
|
rescue => e
|
199
|
-
@engine.
|
199
|
+
@engine.log_exception e
|
200
200
|
return nil
|
201
201
|
end
|
202
202
|
end
|
data/lib/gloo/objs/ror/eval.rb
CHANGED
@@ -39,8 +39,7 @@ module Gloo
|
|
39
39
|
# Returns nil if there is none.
|
40
40
|
#
|
41
41
|
def salt
|
42
|
-
|
43
|
-
return o&.value
|
42
|
+
return find_child_value SALT
|
44
43
|
end
|
45
44
|
|
46
45
|
#
|
@@ -48,15 +47,14 @@ module Gloo
|
|
48
47
|
# Returns nil if there is none.
|
49
48
|
#
|
50
49
|
def password
|
51
|
-
|
52
|
-
return o&.value
|
50
|
+
return find_child_value PASSWORD
|
53
51
|
end
|
54
52
|
|
55
53
|
#
|
56
54
|
# Update the password value.
|
57
55
|
#
|
58
56
|
def update_password( new_pwd )
|
59
|
-
o =
|
57
|
+
o = find_child_resolve_alias PASSWORD
|
60
58
|
return unless o
|
61
59
|
|
62
60
|
o.set_value new_pwd
|
@@ -74,15 +72,14 @@ module Gloo
|
|
74
72
|
# Returns nil if there is none.
|
75
73
|
#
|
76
74
|
def hash
|
77
|
-
|
78
|
-
return o&.value
|
75
|
+
return find_child_value HASH
|
79
76
|
end
|
80
77
|
|
81
78
|
#
|
82
79
|
# Update the hashed password value.
|
83
80
|
#
|
84
81
|
def update_hash( new_hash )
|
85
|
-
o =
|
82
|
+
o = find_child_resolve_alias HASH
|
86
83
|
return unless o
|
87
84
|
|
88
85
|
o.set_value new_hash
|
@@ -50,6 +50,7 @@ module Gloo
|
|
50
50
|
CODE = 'code'.freeze
|
51
51
|
ELAPSED = 'elapsed'.freeze
|
52
52
|
DB = 'db'.freeze
|
53
|
+
PAGE = 'page'.freeze
|
53
54
|
|
54
55
|
# Container with pages in the web app.
|
55
56
|
PAGES = 'pages'.freeze
|
@@ -426,7 +427,7 @@ module Gloo
|
|
426
427
|
@engine.stop_running_app
|
427
428
|
# The running app will call the stop function (below)
|
428
429
|
else
|
429
|
-
@engine.
|
430
|
+
@engine.err SERVER_NOT_RUNNING
|
430
431
|
end
|
431
432
|
end
|
432
433
|
|
@@ -437,7 +438,7 @@ module Gloo
|
|
437
438
|
if @router
|
438
439
|
@router.show_routes
|
439
440
|
else
|
440
|
-
@engine.
|
441
|
+
@engine.err SERVER_NOT_RUNNING
|
441
442
|
end
|
442
443
|
end
|
443
444
|
|
@@ -558,7 +559,7 @@ module Gloo
|
|
558
559
|
# This is done after the page is rendered and before
|
559
560
|
# the on_response event is fired.
|
560
561
|
#
|
561
|
-
def set_response_data( request, response )
|
562
|
+
def set_response_data( request, response, page_obj=nil )
|
562
563
|
data = find_child RESPONSE_DATA
|
563
564
|
return unless data
|
564
565
|
data = Gloo::Objs::Alias.resolve_alias( @engine, data )
|
@@ -567,6 +568,10 @@ module Gloo
|
|
567
568
|
data.find_child( DB )&.set_value( request.db )
|
568
569
|
data.find_child( TYPE )&.set_value( response.type )
|
569
570
|
data.find_child( CODE )&.set_value( response.code )
|
571
|
+
|
572
|
+
if page_obj
|
573
|
+
data.find_child( PAGE )&.set_value( page_obj.pn )
|
574
|
+
end
|
570
575
|
end
|
571
576
|
|
572
577
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Author:: Eric Crane (mailto:eric.crane@mac.com)
|
2
|
+
# Copyright:: Copyright (c) 2024 Eric Crane. All rights reserved.
|
3
|
+
#
|
4
|
+
# Alternate version of the Tell verb.
|
5
|
+
# Reads better to check object conditions.
|
6
|
+
#
|
7
|
+
|
8
|
+
module Gloo
|
9
|
+
module Verbs
|
10
|
+
class Check < Gloo::Core::Verb
|
11
|
+
|
12
|
+
KEYWORD = 'check'.freeze
|
13
|
+
KEYWORD_SHORT = '<-'.freeze
|
14
|
+
FOR = 'for'.freeze
|
15
|
+
UNKNOWN_MSG_ERR = 'Missing message!'.freeze
|
16
|
+
|
17
|
+
#
|
18
|
+
# Run the verb.
|
19
|
+
#
|
20
|
+
def run
|
21
|
+
msg = @tokens.after_token( FOR )
|
22
|
+
|
23
|
+
unless msg
|
24
|
+
@engine.err( UNKNOWN_MSG_ERR )
|
25
|
+
return
|
26
|
+
end
|
27
|
+
|
28
|
+
Gloo::Exec::Dispatch.send_message(
|
29
|
+
@engine, msg, @tokens.second, @params )
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# Get the Verb's keyword.
|
34
|
+
#
|
35
|
+
def self.keyword
|
36
|
+
return KEYWORD
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
40
|
+
# Get the Verb's keyword shortcut.
|
41
|
+
#
|
42
|
+
def self.keyword_shortcut
|
43
|
+
return KEYWORD_SHORT
|
44
|
+
end
|
45
|
+
|
46
|
+
# ---------------------------------------------------------------------
|
47
|
+
# Private functions
|
48
|
+
# ---------------------------------------------------------------------
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/lib/gloo/verbs/redirect.rb
CHANGED
data/lib/gloo/verbs/tell.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
# Author:: Eric Crane (mailto:eric.crane@mac.com)
|
2
2
|
# Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# Send a message to an object.
|
5
|
+
# Tell the object to do some known action.
|
6
|
+
# Also see the Check verb.
|
5
7
|
#
|
6
8
|
|
7
9
|
module Gloo
|
@@ -11,18 +13,21 @@ module Gloo
|
|
11
13
|
KEYWORD = 'tell'.freeze
|
12
14
|
KEYWORD_SHORT = '->'.freeze
|
13
15
|
TO = 'to'.freeze
|
14
|
-
OBJ_NOT_FOUND_ERR = 'Object was not found: '.freeze
|
15
16
|
UNKNOWN_MSG_ERR = 'Missing message!'.freeze
|
16
17
|
|
17
18
|
#
|
18
19
|
# Run the verb.
|
19
20
|
#
|
20
21
|
def run
|
21
|
-
|
22
|
-
return unless @msg
|
22
|
+
msg = @tokens.after_token( TO )
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
unless msg
|
25
|
+
@engine.err( UNKNOWN_MSG_ERR )
|
26
|
+
return
|
27
|
+
end
|
28
|
+
|
29
|
+
Gloo::Exec::Dispatch.send_message(
|
30
|
+
@engine, msg, @tokens.second, @params )
|
26
31
|
end
|
27
32
|
|
28
33
|
#
|
@@ -45,36 +50,6 @@ module Gloo
|
|
45
50
|
|
46
51
|
private
|
47
52
|
|
48
|
-
#
|
49
|
-
# Lookup the message to send.
|
50
|
-
#
|
51
|
-
def setup_msg
|
52
|
-
@msg = @tokens.after_token( TO )
|
53
|
-
|
54
|
-
@engine.err( UNKNOWN_MSG_ERR ) unless @msg
|
55
|
-
end
|
56
|
-
|
57
|
-
#
|
58
|
-
# Setup the target of the message.
|
59
|
-
#
|
60
|
-
def setup_target
|
61
|
-
@obj_name = @tokens.second
|
62
|
-
pn = Gloo::Core::Pn.new( @engine, @obj_name )
|
63
|
-
@target_obj = pn.resolve
|
64
|
-
end
|
65
|
-
|
66
|
-
#
|
67
|
-
# Dispatch the message to the target object.
|
68
|
-
#
|
69
|
-
def dispatch_msg
|
70
|
-
if @target_obj
|
71
|
-
Gloo::Exec::Dispatch.message(
|
72
|
-
@engine, @msg, @target_obj, @params )
|
73
|
-
else
|
74
|
-
@engine.err "#{OBJ_NOT_FOUND_ERR} #{@obj_name}"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
53
|
end
|
79
54
|
end
|
80
55
|
end
|
data/lib/gloo/web_svr/handler.rb
CHANGED
@@ -35,6 +35,7 @@ module Gloo
|
|
35
35
|
#
|
36
36
|
def handle request
|
37
37
|
@request = request
|
38
|
+
page_obj = nil
|
38
39
|
|
39
40
|
page, id = @server_obj.router.page_for_route( @request.path, @request.method )
|
40
41
|
@engine.log.debug "Found Page: #{page&.name}" if page
|
@@ -44,12 +45,13 @@ module Gloo
|
|
44
45
|
result = handle_file page
|
45
46
|
else
|
46
47
|
result = handle_page page
|
48
|
+
page_obj = page
|
47
49
|
end
|
48
50
|
else
|
49
51
|
result = server_error_result
|
50
52
|
end
|
51
53
|
|
52
|
-
return result
|
54
|
+
return result, page_obj
|
53
55
|
end
|
54
56
|
|
55
57
|
#
|
data/lib/gloo/web_svr/request.rb
CHANGED
@@ -60,11 +60,11 @@ module Gloo
|
|
60
60
|
@handler.server_obj.set_request_data self
|
61
61
|
@handler.server_obj.run_on_request
|
62
62
|
|
63
|
-
result = @handler.handle self
|
63
|
+
result, page_obj = @handler.handle self
|
64
64
|
finish_timer
|
65
65
|
|
66
66
|
# Run the on_response script if there is one.
|
67
|
-
@handler.server_obj.set_response_data self, result
|
67
|
+
@handler.server_obj.set_response_data( self, result, page_obj )
|
68
68
|
@handler.server_obj.run_on_response
|
69
69
|
|
70
70
|
return result
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gloo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Crane
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -483,6 +483,7 @@ files:
|
|
483
483
|
- lib/gloo/verbs/alert.rb
|
484
484
|
- lib/gloo/verbs/beep.rb
|
485
485
|
- lib/gloo/verbs/break.rb
|
486
|
+
- lib/gloo/verbs/check.rb
|
486
487
|
- lib/gloo/verbs/cls.rb
|
487
488
|
- lib/gloo/verbs/context.rb
|
488
489
|
- lib/gloo/verbs/create.rb
|