gloo 4.6.1 → 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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/gloo.gemspec +22 -11
  4. data/lib/VERSION +1 -1
  5. data/lib/VERSION_NOTES +12 -0
  6. data/lib/gloo/app/engine.rb +8 -1
  7. data/lib/gloo/app/running_app.rb +13 -0
  8. data/lib/gloo/app/settings.rb +5 -1
  9. data/lib/gloo/core/dictionary.rb +15 -2
  10. data/lib/gloo/objs/ctrl/each.rb +2 -2
  11. data/lib/gloo/plugin/base.rb +19 -0
  12. data/lib/gloo/plugin/callback.rb +33 -0
  13. data/lib/gloo/plugin/ext_manager.rb +90 -0
  14. data/lib/gloo/plugin/lib_manager.rb +97 -0
  15. data/lib/gloo/verbs/exists.rb +75 -0
  16. data/lib/gloo/verbs/help.rb +58 -1
  17. data/lib/gloo/verbs/load.rb +49 -5
  18. data/lib/gloo/verbs/redirect.rb +2 -1
  19. metadata +38 -166
  20. data/lib/gloo/objs/cli/colorize.rb +0 -73
  21. data/lib/gloo/objs/cli/confirm.rb +0 -96
  22. data/lib/gloo/objs/cli/menu.rb +0 -370
  23. data/lib/gloo/objs/cli/menu_item.rb +0 -95
  24. data/lib/gloo/objs/cli/prompt.rb +0 -110
  25. data/lib/gloo/objs/cli/select.rb +0 -127
  26. data/lib/gloo/objs/ctrl/each_repo.rb +0 -84
  27. data/lib/gloo/objs/data/markdown.rb +0 -133
  28. data/lib/gloo/objs/data/markdown_ext.rb +0 -260
  29. data/lib/gloo/objs/data/mysql.rb +0 -254
  30. data/lib/gloo/objs/data/pg.rb +0 -216
  31. data/lib/gloo/objs/data/query.rb +0 -269
  32. data/lib/gloo/objs/data/query_result.rb +0 -158
  33. data/lib/gloo/objs/data/sqlite.rb +0 -174
  34. data/lib/gloo/objs/data/table.rb +0 -267
  35. data/lib/gloo/objs/dev/git.rb +0 -140
  36. data/lib/gloo/objs/dev/stats.rb +0 -123
  37. data/lib/gloo/objs/system/ssh_exec.rb +0 -126
  38. data/lib/gloo/objs/web/slack.rb +0 -130
  39. data/lib/gloo/objs/web/teams.rb +0 -117
  40. data/lib/gloo/objs/web_svr/element.rb +0 -254
  41. data/lib/gloo/objs/web_svr/field.rb +0 -429
  42. data/lib/gloo/objs/web_svr/form.rb +0 -271
  43. data/lib/gloo/objs/web_svr/page.rb +0 -562
  44. data/lib/gloo/objs/web_svr/partial.rb +0 -210
  45. data/lib/gloo/objs/web_svr/svr.rb +0 -713
  46. data/lib/gloo/utils/stats.rb +0 -206
  47. data/lib/gloo/verbs/alert.rb +0 -79
  48. data/lib/gloo/verbs/beep.rb +0 -40
  49. data/lib/gloo/web_svr/asset.rb +0 -407
  50. data/lib/gloo/web_svr/asset_info.rb +0 -116
  51. data/lib/gloo/web_svr/config.rb +0 -56
  52. data/lib/gloo/web_svr/embedded_renderer.rb +0 -154
  53. data/lib/gloo/web_svr/handler.rb +0 -154
  54. data/lib/gloo/web_svr/request.rb +0 -143
  55. data/lib/gloo/web_svr/request_params.rb +0 -181
  56. data/lib/gloo/web_svr/response.rb +0 -177
  57. data/lib/gloo/web_svr/response_code.rb +0 -69
  58. data/lib/gloo/web_svr/routing/resource_router.rb +0 -47
  59. data/lib/gloo/web_svr/routing/router.rb +0 -232
  60. data/lib/gloo/web_svr/routing/show_routes.rb +0 -94
  61. data/lib/gloo/web_svr/server.rb +0 -105
  62. data/lib/gloo/web_svr/session.rb +0 -215
  63. data/lib/gloo/web_svr/table_renderer.rb +0 -151
  64. data/lib/gloo/web_svr/web_method.rb +0 -54
  65. /data/lib/gloo/objs/{security → str_utils}/cipher.rb +0 -0
  66. /data/lib/gloo/objs/{security → str_utils}/csrf_token.rb +0 -0
  67. /data/lib/gloo/objs/{security → str_utils}/password.rb +0 -0
  68. /data/lib/gloo/objs/{ror → system}/erb.rb +0 -0
  69. /data/lib/gloo/objs/{ror → system}/eval.rb +0 -0
@@ -11,18 +11,39 @@ module Gloo
11
11
  KEYWORD = 'load'.freeze
12
12
  KEYWORD_SHORT = 'ld'.freeze
13
13
  MISSING_EXPR_ERR = 'Missing Expression!'.freeze
14
+ UNKNOWN_OPT_ERR = 'Unknown load option!'.freeze
15
+ WRONG_NUM_ARGS_ERR = 'Wrong number of arguments! 2 or 3 expected.'.freeze
16
+ FEATURE_NOT_IMPLEMENTED_ERR = 'Feature not implemented yet!'.freeze
17
+
18
+ FILE_OPT = 'file'.freeze
19
+ EXT_OPT = 'ext'.freeze
20
+ LIB_OPT = 'lib'.freeze
14
21
 
15
22
  #
16
23
  # Run the verb.
17
24
  #
18
25
  def run
19
- fn = @tokens.second
20
-
21
- if fn
22
- @engine.log.debug "Getting ready to load file: #{fn}"
23
- @engine.persist_man.load fn
26
+ if @tokens.token_count == 2
27
+ opt = FILE_OPT
28
+ fn = @tokens.second
29
+ elsif @tokens.token_count == 3
30
+ opt = @tokens.second.strip.downcase
31
+ fn = @tokens.last
24
32
  else
33
+ @engine.err WRONG_NUM_ARGS_ERR
34
+ return
35
+ end
36
+
37
+ if fn.blank?
25
38
  @engine.err MISSING_EXPR_ERR
39
+ elsif opt == FILE_OPT
40
+ load_gloo_file fn
41
+ elsif opt == EXT_OPT
42
+ load_extension fn
43
+ elsif opt == LIB_OPT
44
+ load_library fn
45
+ else
46
+ @engine.err UNKNOWN_OPT_ERR
26
47
  end
27
48
  end
28
49
 
@@ -40,6 +61,29 @@ module Gloo
40
61
  return KEYWORD_SHORT
41
62
  end
42
63
 
64
+ #
65
+ # Load a gloo file
66
+ #
67
+ def load_gloo_file( fn )
68
+ @engine.log.debug "Getting ready to load gloo file: #{fn}"
69
+ @engine.persist_man.load fn
70
+ end
71
+
72
+ #
73
+ # Load an extension
74
+ #
75
+ def load_extension( name )
76
+ @engine.log.debug "Getting ready to load extension: #{name}"
77
+ @engine.ext_manager.load_ext name
78
+ end
79
+
80
+ #
81
+ # Load a library
82
+ #
83
+ def load_library( name )
84
+ @engine.log.debug "Getting ready to load library: #{name}"
85
+ @engine.lib_manager.load_lib name
86
+ end
43
87
  end
44
88
  end
45
89
  end
@@ -87,7 +87,8 @@ module Gloo
87
87
  # This could be a page or a script.
88
88
  #
89
89
  def redirect_to_target
90
- if @target_obj.class == Gloo::Objs::Page
90
+ # TODO: Use a better way to determine if the target is a page or a script.
91
+ if @engine.app_running? && ( @target_obj.class.name == 'Page' )
91
92
  redirect_to_page
92
93
  elsif @target_obj.can_receive_message?( RUN_MESSAGE )
93
94
  redirect_to_script
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: 4.6.1
4
+ version: '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: 2025-09-25 00:00:00.000000000 Z
11
+ date: 2026-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -118,68 +118,6 @@ dependencies:
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
120
  version: 0.10.2
121
- - !ruby/object:Gem::Dependency
122
- name: colorize
123
- requirement: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: 1.1.0
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: 1.1.0
131
- type: :runtime
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: 1.1.0
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- version: 1.1.0
141
- - !ruby/object:Gem::Dependency
142
- name: inquirer
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: '0'
148
- type: :runtime
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- version: '0'
155
- - !ruby/object:Gem::Dependency
156
- name: reline
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- version: '0'
162
- type: :runtime
163
- prerelease: false
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - ">="
167
- - !ruby/object:Gem::Version
168
- version: '0'
169
- - !ruby/object:Gem::Dependency
170
- name: terminal-table
171
- requirement: !ruby/object:Gem::Requirement
172
- requirements:
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- version: '0'
176
- type: :runtime
177
- prerelease: false
178
- version_requirements: !ruby/object:Gem::Requirement
179
- requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
182
- version: '0'
183
121
  - !ruby/object:Gem::Dependency
184
122
  name: json
185
123
  requirement: !ruby/object:Gem::Requirement
@@ -215,127 +153,101 @@ dependencies:
215
153
  - !ruby/object:Gem::Version
216
154
  version: '0'
217
155
  - !ruby/object:Gem::Dependency
218
- name: net-ssh
156
+ name: bcrypt
219
157
  requirement: !ruby/object:Gem::Requirement
220
158
  requirements:
221
159
  - - "~>"
222
160
  - !ruby/object:Gem::Version
223
- version: '6.1'
224
- - - ">="
225
- - !ruby/object:Gem::Version
226
- version: 6.1.0
161
+ version: 3.1.20
227
162
  type: :runtime
228
163
  prerelease: false
229
164
  version_requirements: !ruby/object:Gem::Requirement
230
165
  requirements:
231
166
  - - "~>"
232
167
  - !ruby/object:Gem::Version
233
- version: '6.1'
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: 6.1.0
168
+ version: 3.1.20
237
169
  - !ruby/object:Gem::Dependency
238
- name: mysql2
170
+ name: os
239
171
  requirement: !ruby/object:Gem::Requirement
240
172
  requirements:
241
173
  - - "~>"
242
174
  - !ruby/object:Gem::Version
243
- version: '0.5'
175
+ version: '1.1'
244
176
  - - ">="
245
177
  - !ruby/object:Gem::Version
246
- version: 0.5.3
178
+ version: 1.1.4
247
179
  type: :runtime
248
180
  prerelease: false
249
181
  version_requirements: !ruby/object:Gem::Requirement
250
182
  requirements:
251
183
  - - "~>"
252
184
  - !ruby/object:Gem::Version
253
- version: '0.5'
185
+ version: '1.1'
254
186
  - - ">="
255
187
  - !ruby/object:Gem::Version
256
- version: 0.5.3
188
+ version: 1.1.4
257
189
  - !ruby/object:Gem::Dependency
258
- name: sqlite3
190
+ name: colorize
259
191
  requirement: !ruby/object:Gem::Requirement
260
192
  requirements:
261
193
  - - "~>"
262
194
  - !ruby/object:Gem::Version
263
- version: '1.4'
195
+ version: 1.1.0
264
196
  - - ">="
265
197
  - !ruby/object:Gem::Version
266
- version: 1.4.2
198
+ version: 1.1.0
267
199
  type: :runtime
268
200
  prerelease: false
269
201
  version_requirements: !ruby/object:Gem::Requirement
270
202
  requirements:
271
203
  - - "~>"
272
204
  - !ruby/object:Gem::Version
273
- version: '1.4'
205
+ version: 1.1.0
274
206
  - - ">="
275
207
  - !ruby/object:Gem::Version
276
- version: 1.4.2
208
+ version: 1.1.0
277
209
  - !ruby/object:Gem::Dependency
278
- name: os
210
+ name: inquirer
279
211
  requirement: !ruby/object:Gem::Requirement
280
212
  requirements:
281
- - - "~>"
282
- - !ruby/object:Gem::Version
283
- version: '1.1'
284
213
  - - ">="
285
214
  - !ruby/object:Gem::Version
286
- version: 1.1.4
215
+ version: '0'
287
216
  type: :runtime
288
217
  prerelease: false
289
218
  version_requirements: !ruby/object:Gem::Requirement
290
219
  requirements:
291
- - - "~>"
292
- - !ruby/object:Gem::Version
293
- version: '1.1'
294
220
  - - ">="
295
221
  - !ruby/object:Gem::Version
296
- version: 1.1.4
297
- - !ruby/object:Gem::Dependency
298
- name: thin
299
- requirement: !ruby/object:Gem::Requirement
300
- requirements:
301
- - - "~>"
302
- - !ruby/object:Gem::Version
303
- version: 1.8.2
304
- type: :runtime
305
- prerelease: false
306
- version_requirements: !ruby/object:Gem::Requirement
307
- requirements:
308
- - - "~>"
309
- - !ruby/object:Gem::Version
310
- version: 1.8.2
222
+ version: '0'
311
223
  - !ruby/object:Gem::Dependency
312
- name: redcarpet
224
+ name: reline
313
225
  requirement: !ruby/object:Gem::Requirement
314
226
  requirements:
315
- - - "~>"
227
+ - - ">="
316
228
  - !ruby/object:Gem::Version
317
- version: 3.6.0
229
+ version: '0'
318
230
  type: :runtime
319
231
  prerelease: false
320
232
  version_requirements: !ruby/object:Gem::Requirement
321
233
  requirements:
322
- - - "~>"
234
+ - - ">="
323
235
  - !ruby/object:Gem::Version
324
- version: 3.6.0
236
+ version: '0'
325
237
  - !ruby/object:Gem::Dependency
326
- name: bcrypt
238
+ name: terminal-table
327
239
  requirement: !ruby/object:Gem::Requirement
328
240
  requirements:
329
- - - "~>"
241
+ - - ">="
330
242
  - !ruby/object:Gem::Version
331
- version: 3.1.20
243
+ version: '0'
332
244
  type: :runtime
333
245
  prerelease: false
334
246
  version_requirements: !ruby/object:Gem::Requirement
335
247
  requirements:
336
- - - "~>"
248
+ - - ">="
337
249
  - !ruby/object:Gem::Version
338
- version: 3.1.20
250
+ version: '0'
339
251
  description: A scripting languge to keep it all together.
340
252
  email:
341
253
  - eric.crane@mac.com
@@ -438,72 +350,48 @@ files:
438
350
  - lib/gloo/objs/basic/string_generator.rb
439
351
  - lib/gloo/objs/basic/text.rb
440
352
  - lib/gloo/objs/basic/untyped.rb
441
- - lib/gloo/objs/cli/colorize.rb
442
- - lib/gloo/objs/cli/confirm.rb
443
- - lib/gloo/objs/cli/menu.rb
444
- - lib/gloo/objs/cli/menu_item.rb
445
- - lib/gloo/objs/cli/prompt.rb
446
- - lib/gloo/objs/cli/select.rb
447
353
  - lib/gloo/objs/ctrl/each.rb
448
354
  - lib/gloo/objs/ctrl/each_child.rb
449
355
  - lib/gloo/objs/ctrl/each_file.rb
450
356
  - lib/gloo/objs/ctrl/each_line.rb
451
- - lib/gloo/objs/ctrl/each_repo.rb
452
357
  - lib/gloo/objs/ctrl/each_word.rb
453
358
  - lib/gloo/objs/ctrl/function.rb
454
359
  - lib/gloo/objs/ctrl/repeat.rb
455
- - lib/gloo/objs/data/markdown.rb
456
- - lib/gloo/objs/data/markdown_ext.rb
457
- - lib/gloo/objs/data/mysql.rb
458
- - lib/gloo/objs/data/pg.rb
459
- - lib/gloo/objs/data/query.rb
460
- - lib/gloo/objs/data/query_result.rb
461
- - lib/gloo/objs/data/sqlite.rb
462
- - lib/gloo/objs/data/table.rb
463
- - lib/gloo/objs/dev/git.rb
464
- - lib/gloo/objs/dev/stats.rb
465
360
  - lib/gloo/objs/dt/date.rb
466
361
  - lib/gloo/objs/dt/datetime.rb
467
362
  - lib/gloo/objs/dt/dt_tools.rb
468
363
  - lib/gloo/objs/dt/time.rb
469
- - lib/gloo/objs/ror/erb.rb
470
- - lib/gloo/objs/ror/eval.rb
471
- - lib/gloo/objs/security/cipher.rb
472
- - lib/gloo/objs/security/csrf_token.rb
473
- - lib/gloo/objs/security/password.rb
364
+ - lib/gloo/objs/str_utils/cipher.rb
365
+ - lib/gloo/objs/str_utils/csrf_token.rb
474
366
  - lib/gloo/objs/str_utils/outline.rb
367
+ - lib/gloo/objs/str_utils/password.rb
368
+ - lib/gloo/objs/system/erb.rb
369
+ - lib/gloo/objs/system/eval.rb
475
370
  - lib/gloo/objs/system/file_handle.rb
476
- - lib/gloo/objs/system/ssh_exec.rb
477
371
  - lib/gloo/objs/system/system.rb
478
372
  - lib/gloo/objs/web/http_get.rb
479
373
  - lib/gloo/objs/web/http_post.rb
480
374
  - lib/gloo/objs/web/json.rb
481
- - lib/gloo/objs/web/slack.rb
482
- - lib/gloo/objs/web/teams.rb
483
375
  - lib/gloo/objs/web/uri.rb
484
- - lib/gloo/objs/web_svr/element.rb
485
- - lib/gloo/objs/web_svr/field.rb
486
- - lib/gloo/objs/web_svr/form.rb
487
- - lib/gloo/objs/web_svr/page.rb
488
- - lib/gloo/objs/web_svr/partial.rb
489
- - lib/gloo/objs/web_svr/svr.rb
490
376
  - lib/gloo/persist/disc_mech.rb
491
377
  - lib/gloo/persist/file_loader.rb
492
378
  - lib/gloo/persist/file_saver.rb
493
379
  - lib/gloo/persist/file_storage.rb
494
380
  - lib/gloo/persist/line_splitter.rb
495
381
  - lib/gloo/persist/persist_man.rb
382
+ - lib/gloo/plugin/base.rb
383
+ - lib/gloo/plugin/callback.rb
384
+ - lib/gloo/plugin/ext_manager.rb
385
+ - lib/gloo/plugin/lib_manager.rb
496
386
  - lib/gloo/utils/format.rb
497
- - lib/gloo/utils/stats.rb
498
387
  - lib/gloo/utils/words.rb
499
- - lib/gloo/verbs/alert.rb
500
- - lib/gloo/verbs/beep.rb
501
388
  - lib/gloo/verbs/break.rb
502
389
  - lib/gloo/verbs/check.rb
503
390
  - lib/gloo/verbs/cls.rb
504
391
  - lib/gloo/verbs/context.rb
505
392
  - lib/gloo/verbs/create.rb
506
393
  - lib/gloo/verbs/execute.rb
394
+ - lib/gloo/verbs/exists.rb
507
395
  - lib/gloo/verbs/files.rb
508
396
  - lib/gloo/verbs/help.rb
509
397
  - lib/gloo/verbs/if.rb
@@ -524,22 +412,6 @@ files:
524
412
  - lib/gloo/verbs/unload.rb
525
413
  - lib/gloo/verbs/version.rb
526
414
  - lib/gloo/verbs/wait.rb
527
- - lib/gloo/web_svr/asset.rb
528
- - lib/gloo/web_svr/asset_info.rb
529
- - lib/gloo/web_svr/config.rb
530
- - lib/gloo/web_svr/embedded_renderer.rb
531
- - lib/gloo/web_svr/handler.rb
532
- - lib/gloo/web_svr/request.rb
533
- - lib/gloo/web_svr/request_params.rb
534
- - lib/gloo/web_svr/response.rb
535
- - lib/gloo/web_svr/response_code.rb
536
- - lib/gloo/web_svr/routing/resource_router.rb
537
- - lib/gloo/web_svr/routing/router.rb
538
- - lib/gloo/web_svr/routing/show_routes.rb
539
- - lib/gloo/web_svr/server.rb
540
- - lib/gloo/web_svr/session.rb
541
- - lib/gloo/web_svr/table_renderer.rb
542
- - lib/gloo/web_svr/web_method.rb
543
415
  - lib/run.rb
544
416
  homepage: http://github.com/ecrane/gloo
545
417
  licenses:
@@ -1,73 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved.
3
- #
4
- # Show colorized output.
5
- #
6
- require 'colorized_string'
7
-
8
- module Gloo
9
- module Objs
10
- class Colorize < Gloo::Core::Obj
11
-
12
- KEYWORD = 'colorize'.freeze
13
- KEYWORD_SHORT = 'color'.freeze
14
-
15
- #
16
- # The name of the object type.
17
- #
18
- def self.typename
19
- return KEYWORD
20
- end
21
-
22
- #
23
- # The short name of the object type.
24
- #
25
- def self.short_typename
26
- return KEYWORD_SHORT
27
- end
28
-
29
- # ---------------------------------------------------------------------
30
- # Children
31
- # ---------------------------------------------------------------------
32
-
33
- # Does this object have children to add when an object
34
- # is created in interactive mode?
35
- # This does not apply during obj load, etc.
36
- def add_children_on_create?
37
- return true
38
- end
39
-
40
- # Add children to this object.
41
- # This is used by containers to add children needed
42
- # for default configurations.
43
- def add_default_children
44
- fac = @engine.factory
45
- fac.create_string 'white', '', self
46
- end
47
-
48
- # ---------------------------------------------------------------------
49
- # Messages
50
- # ---------------------------------------------------------------------
51
-
52
- #
53
- # Get a list of message names that this object receives.
54
- #
55
- def self.messages
56
- return super + [ 'run' ]
57
- end
58
-
59
- #
60
- # Run the colorize command.
61
- #
62
- def msg_run
63
- msg = ''
64
- children.each do |o|
65
- msg += ColorizedString[ o.value_display ].colorize( o.name.to_sym )
66
- end
67
- @engine.log.show msg
68
- @engine.heap.it.set_to msg.to_s
69
- end
70
-
71
- end
72
- end
73
- end
@@ -1,96 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Show a CLI confirmation prompt.
5
- #
6
-
7
- module Gloo
8
- module Objs
9
- class Confirm < Gloo::Core::Obj
10
-
11
- KEYWORD = 'confirm'.freeze
12
- KEYWORD_SHORT = 'confirm'.freeze
13
- PROMPT = 'prompt'.freeze
14
- DEFAULT_PROMPT = '> '.freeze
15
- RESULT = 'result'.freeze
16
-
17
- #
18
- # The name of the object type.
19
- #
20
- def self.typename
21
- return KEYWORD
22
- end
23
-
24
- #
25
- # The short name of the object type.
26
- #
27
- def self.short_typename
28
- return KEYWORD_SHORT
29
- end
30
-
31
- #
32
- # Get the URI from the child object.
33
- # Returns nil if there is none.
34
- #
35
- def prompt_value
36
- o = find_child PROMPT
37
- return nil unless o
38
-
39
- return o.value
40
- end
41
-
42
- #
43
- # Set the result of the system call.
44
- #
45
- def set_result( data )
46
- r = find_child RESULT
47
- return nil unless r
48
-
49
- r.set_value data
50
- end
51
-
52
- # ---------------------------------------------------------------------
53
- # Children
54
- # ---------------------------------------------------------------------
55
-
56
- # Does this object have children to add when an object
57
- # is created in interactive mode?
58
- # This does not apply during obj load, etc.
59
- def add_children_on_create?
60
- return true
61
- end
62
-
63
- # Add children to this object.
64
- # This is used by containers to add children needed
65
- # for default configurations.
66
- def add_default_children
67
- fac = @engine.factory
68
- fac.create_string PROMPT, DEFAULT_PROMPT, self
69
- fac.create_bool RESULT, nil, self
70
- end
71
-
72
- # ---------------------------------------------------------------------
73
- # Messages
74
- # ---------------------------------------------------------------------
75
-
76
- #
77
- # Get a list of message names that this object receives.
78
- #
79
- def self.messages
80
- return super + [ 'run' ]
81
- end
82
-
83
- #
84
- # Run the confirmation command.
85
- #
86
- def msg_run
87
- prompt = prompt_value
88
- return unless prompt
89
-
90
- result = @engine.platform.prompt.yes?( prompt )
91
- set_result result
92
- end
93
-
94
- end
95
- end
96
- end