gloo 5.1.0 → 5.3.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/lib/VERSION +1 -1
  3. data/lib/VERSION_NOTES +19 -1
  4. data/lib/gloo/app/args.rb +9 -0
  5. data/lib/gloo/app/engine.rb +48 -2
  6. data/lib/gloo/app/mode.rb +1 -1
  7. data/lib/gloo/core/it.rb +14 -0
  8. data/lib/gloo/core/obj.rb +22 -1
  9. data/lib/gloo/core/obj_finder.rb +21 -0
  10. data/lib/gloo/expr/op_eq.rb +5 -0
  11. data/lib/gloo/objs/basic/string.rb +5 -228
  12. data/lib/gloo/objs/basic/string_msgs.rb +269 -0
  13. data/lib/gloo/objs/basic/text.rb +7 -1
  14. data/lib/gloo/objs/ctrl/each.rb +2 -0
  15. data/lib/gloo/objs/ctrl/each_dir.rb +72 -0
  16. data/lib/gloo/objs/dt/date.rb +32 -1
  17. data/lib/gloo/objs/dt/time.rb +33 -1
  18. data/lib/gloo/persist/disc_mech.rb +10 -1
  19. data/lib/gloo/persist/persist_man.rb +11 -2
  20. data/lib/gloo/plugin/ext_manager.rb +5 -0
  21. data/lib/gloo/plugin/lib_manager.rb +6 -0
  22. data/lib/gloo/verbs/eval.rb +43 -0
  23. data/lib/gloo/verbs/exists.rb +13 -0
  24. data/lib/gloo/verbs/reload.rb +2 -0
  25. data/lib/gloo/verbs/unload.rb +1 -0
  26. data/test.gloo/basic.test.gloo +53 -0
  27. data/test.gloo/dt/date.test.gloo +76 -0
  28. data/test.gloo/dt/time.test.gloo +76 -0
  29. data/test.gloo/lang/gloo_sys.test.gloo +91 -0
  30. data/test.gloo/lang/ops.test.gloo +79 -0
  31. data/test.gloo/math/add.test.gloo +46 -0
  32. data/test.gloo/math/div.test.gloo +37 -0
  33. data/test.gloo/math/mult.test.gloo +37 -0
  34. data/test.gloo/math/sub.test.gloo +37 -0
  35. data/test.gloo/objs/bool.test.gloo +60 -0
  36. data/test.gloo/objs/can.test.gloo +47 -0
  37. data/test.gloo/objs/int.test.gloo +56 -0
  38. data/test.gloo/objs/obj.test.gloo +52 -0
  39. data/test.gloo/objs/script.test.gloo +23 -0
  40. data/test.gloo/objs/text.test.gloo +84 -0
  41. data/test.gloo/objs/untyped.test.gloo +25 -0
  42. data/test.gloo/string/str.test.gloo +118 -0
  43. data/test.gloo/string/str_gen.test.gloo +76 -0
  44. data/test.gloo/verbs/break.test.gloo +22 -0
  45. data/test.gloo/verbs/check.test.gloo +35 -0
  46. data/test.gloo/verbs/eval.test.gloo +19 -0
  47. data/test.gloo/verbs/exists.test.gloo +49 -0
  48. data/test.gloo/verbs/if.test.gloo +16 -0
  49. data/test.gloo/verbs/log.test.gloo +14 -0
  50. data/test.gloo/verbs/move.test.gloo +20 -0
  51. data/test.gloo/verbs/put.test.gloo +19 -0
  52. data/test.gloo/verbs/run.test.gloo +16 -0
  53. data/test.gloo/verbs/tell.test.gloo +16 -0
  54. metadata +33 -3
  55. data/lib/gloo/objs/system/eval.rb +0 -107
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: 5.1.0
4
+ version: 5.3.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: 2026-02-15 00:00:00.000000000 Z
11
+ date: 2026-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -348,10 +348,12 @@ files:
348
348
  - lib/gloo/objs/basic/script.rb
349
349
  - lib/gloo/objs/basic/string.rb
350
350
  - lib/gloo/objs/basic/string_generator.rb
351
+ - lib/gloo/objs/basic/string_msgs.rb
351
352
  - lib/gloo/objs/basic/text.rb
352
353
  - lib/gloo/objs/basic/untyped.rb
353
354
  - lib/gloo/objs/ctrl/each.rb
354
355
  - lib/gloo/objs/ctrl/each_child.rb
356
+ - lib/gloo/objs/ctrl/each_dir.rb
355
357
  - lib/gloo/objs/ctrl/each_file.rb
356
358
  - lib/gloo/objs/ctrl/each_line.rb
357
359
  - lib/gloo/objs/ctrl/each_word.rb
@@ -366,7 +368,6 @@ files:
366
368
  - lib/gloo/objs/str_utils/outline.rb
367
369
  - lib/gloo/objs/str_utils/password.rb
368
370
  - lib/gloo/objs/system/erb.rb
369
- - lib/gloo/objs/system/eval.rb
370
371
  - lib/gloo/objs/system/file_handle.rb
371
372
  - lib/gloo/objs/system/system.rb
372
373
  - lib/gloo/objs/web/http_get.rb
@@ -390,6 +391,7 @@ files:
390
391
  - lib/gloo/verbs/cls.rb
391
392
  - lib/gloo/verbs/context.rb
392
393
  - lib/gloo/verbs/create.rb
394
+ - lib/gloo/verbs/eval.rb
393
395
  - lib/gloo/verbs/execute.rb
394
396
  - lib/gloo/verbs/exists.rb
395
397
  - lib/gloo/verbs/files.rb
@@ -413,6 +415,34 @@ files:
413
415
  - lib/gloo/verbs/version.rb
414
416
  - lib/gloo/verbs/wait.rb
415
417
  - lib/run.rb
418
+ - test.gloo/basic.test.gloo
419
+ - test.gloo/dt/date.test.gloo
420
+ - test.gloo/dt/time.test.gloo
421
+ - test.gloo/lang/gloo_sys.test.gloo
422
+ - test.gloo/lang/ops.test.gloo
423
+ - test.gloo/math/add.test.gloo
424
+ - test.gloo/math/div.test.gloo
425
+ - test.gloo/math/mult.test.gloo
426
+ - test.gloo/math/sub.test.gloo
427
+ - test.gloo/objs/bool.test.gloo
428
+ - test.gloo/objs/can.test.gloo
429
+ - test.gloo/objs/int.test.gloo
430
+ - test.gloo/objs/obj.test.gloo
431
+ - test.gloo/objs/script.test.gloo
432
+ - test.gloo/objs/text.test.gloo
433
+ - test.gloo/objs/untyped.test.gloo
434
+ - test.gloo/string/str.test.gloo
435
+ - test.gloo/string/str_gen.test.gloo
436
+ - test.gloo/verbs/break.test.gloo
437
+ - test.gloo/verbs/check.test.gloo
438
+ - test.gloo/verbs/eval.test.gloo
439
+ - test.gloo/verbs/exists.test.gloo
440
+ - test.gloo/verbs/if.test.gloo
441
+ - test.gloo/verbs/log.test.gloo
442
+ - test.gloo/verbs/move.test.gloo
443
+ - test.gloo/verbs/put.test.gloo
444
+ - test.gloo/verbs/run.test.gloo
445
+ - test.gloo/verbs/tell.test.gloo
416
446
  homepage: http://github.com/ecrane/gloo
417
447
  licenses:
418
448
  - MIT
@@ -1,107 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # An object that evaluate a ruby statement.
5
- #
6
-
7
- module Gloo
8
- module Objs
9
- class Eval < Gloo::Core::Obj
10
-
11
- KEYWORD = 'eval'.freeze
12
- KEYWORD_SHORT = 'ruby'.freeze
13
- CMD = 'command'.freeze
14
- DEFAULT_CMD = '1+2'.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 cmd_value
36
- cmd = find_child CMD
37
- return nil unless cmd
38
-
39
- return cmd.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
- #
57
- # Does this object have children to add when an object
58
- # is created in interactive mode?
59
- # This does not apply during obj load, etc.
60
- #
61
- def add_children_on_create?
62
- return true
63
- end
64
-
65
- #
66
- # Add children to this object.
67
- # This is used by containers to add children needed
68
- # for default configurations.
69
- #
70
- def add_default_children
71
- fac = @engine.factory
72
- fac.create_string CMD, DEFAULT_CMD, self
73
- fac.create_string RESULT, nil, self
74
- end
75
-
76
- # ---------------------------------------------------------------------
77
- # Messages
78
- # ---------------------------------------------------------------------
79
-
80
- #
81
- # Get a list of message names that this object receives.
82
- #
83
- def self.messages
84
- return super + [ 'run' ]
85
- end
86
-
87
- #
88
- # Run the command and evaluate the expression.
89
- #
90
- def msg_run
91
- cmd = cmd_value
92
- return unless cmd
93
-
94
- begin
95
- # rubocop:disable Security/Eval
96
- result = eval cmd
97
- # rubocop:enable Security/Eval
98
- set_result result
99
- @engine.heap.it.set_to result
100
- rescue => e
101
- @engine.log_exception e
102
- end
103
- end
104
-
105
- end
106
- end
107
- end