gloo 5.3.9 → 6.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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/VERSION +1 -1
  3. data/lib/VERSION_NOTES +10 -0
  4. data/lib/gloo/app/engine.rb +57 -13
  5. data/lib/gloo/app/engine_context.rb +1 -1
  6. data/lib/gloo/app/info.rb +0 -1
  7. data/lib/gloo/app/log.rb +1 -1
  8. data/lib/gloo/app/platform.rb +2 -2
  9. data/lib/gloo/app/prompt.rb +1 -0
  10. data/lib/gloo/app/settings.rb +0 -5
  11. data/lib/gloo/app/table.rb +1 -1
  12. data/lib/gloo/convert/nilclass_to_datetime.rb +1 -1
  13. data/lib/gloo/convert/nilclass_to_integer.rb +1 -3
  14. data/lib/gloo/convert/nilclass_to_string.rb +0 -2
  15. data/lib/gloo/convert/nilclass_to_time.rb +1 -1
  16. data/lib/gloo/convert/string_to_decimal.rb +1 -1
  17. data/lib/gloo/core/dictionary.rb +16 -22
  18. data/lib/gloo/core/event_manager.rb +19 -0
  19. data/lib/gloo/core/here.rb +2 -1
  20. data/lib/gloo/core/literal.rb +1 -1
  21. data/lib/gloo/core/obj.rb +5 -1
  22. data/lib/gloo/core/obj_finder.rb +0 -1
  23. data/lib/gloo/core/pn.rb +4 -2
  24. data/lib/gloo/exec/exec_env.rb +0 -2
  25. data/lib/gloo/exec/runner.rb +7 -2
  26. data/lib/gloo/expr/l_decimal.rb +1 -1
  27. data/lib/gloo/expr/l_string.rb +1 -1
  28. data/lib/gloo/expr/op_eq.rb +3 -1
  29. data/lib/gloo/expr/op_gt.rb +3 -0
  30. data/lib/gloo/expr/op_gteq.rb +3 -0
  31. data/lib/gloo/expr/op_ineq.rb +3 -0
  32. data/lib/gloo/expr/op_lt.rb +3 -0
  33. data/lib/gloo/expr/op_lteq.rb +3 -0
  34. data/lib/gloo/objs/basic/alias.rb +1 -1
  35. data/lib/gloo/objs/basic/boolean.rb +1 -1
  36. data/lib/gloo/objs/basic/decimal.rb +22 -1
  37. data/lib/gloo/objs/basic/integer.rb +19 -1
  38. data/lib/gloo/objs/basic/string_generator.rb +4 -7
  39. data/lib/gloo/objs/basic/untyped.rb +1 -1
  40. data/lib/gloo/objs/ctrl/each_child.rb +0 -2
  41. data/lib/gloo/objs/ctrl/function.rb +2 -5
  42. data/lib/gloo/objs/ctrl/repeat.rb +1 -2
  43. data/lib/gloo/objs/dt/datetime.rb +19 -8
  44. data/lib/gloo/objs/dt/dt_tools.rb +101 -21
  45. data/lib/gloo/objs/dt/time.rb +17 -1
  46. data/lib/gloo/objs/str_utils/cipher.rb +8 -11
  47. data/lib/gloo/objs/str_utils/outline.rb +0 -2
  48. data/lib/gloo/objs/system/erb.rb +5 -6
  49. data/lib/gloo/objs/system/file_handle.rb +0 -1
  50. data/lib/gloo/objs/system/system.rb +5 -11
  51. data/lib/gloo/objs/web/http_get.rb +6 -12
  52. data/lib/gloo/objs/web/http_post.rb +5 -31
  53. data/lib/gloo/objs/web/json.rb +1 -1
  54. data/lib/gloo/objs/web/uri.rb +2 -2
  55. data/lib/gloo/persist/disc_mech.rb +2 -2
  56. data/lib/gloo/persist/file_loader.rb +1 -1
  57. data/lib/gloo/persist/file_saver.rb +2 -2
  58. data/lib/gloo/persist/persist_man.rb +12 -8
  59. data/lib/gloo/plugin/callback.rb +1 -1
  60. data/lib/gloo/plugin/ext_manager.rb +1 -1
  61. data/lib/gloo/plugin/lib_manager.rb +1 -1
  62. data/lib/gloo/verbs/execute.rb +0 -6
  63. data/lib/gloo/verbs/files.rb +0 -1
  64. data/lib/gloo/verbs/help.rb +0 -16
  65. data/lib/gloo/verbs/list.rb +1 -1
  66. data/lib/gloo/verbs/load.rb +1 -1
  67. data/lib/gloo/verbs/show.rb +1 -1
  68. data/lib/gloo/verbs/throw.rb +55 -0
  69. data/test.gloo/ctrl/each.test.gloo +39 -0
  70. data/test.gloo/dt/date.test.gloo +1 -1
  71. data/test.gloo/dt/datetime.test.gloo +61 -0
  72. data/test.gloo/dt/time.test.gloo +14 -1
  73. data/test.gloo/lang/dt_comparisons.test.gloo +124 -0
  74. data/test.gloo/lang/exceptions.test.gloo +63 -0
  75. data/test.gloo/objs/alias.test.gloo +24 -0
  76. data/test.gloo/objs/decimal.test.gloo +38 -0
  77. data/test.gloo/objs/erb.test.gloo +35 -0
  78. data/test.gloo/objs/int.test.gloo +14 -0
  79. data/test.gloo/objs/string.test.gloo +44 -0
  80. data/test.gloo/verbs/create.test.gloo +14 -0
  81. data/test.gloo/verbs/invoke.test.gloo +20 -0
  82. data/test.gloo/verbs/unless.test.gloo +22 -0
  83. metadata +14 -4
  84. data/lib/gloo/utils/format.rb +0 -21
  85. data/lib/gloo/utils/words.rb +0 -19
@@ -54,3 +54,17 @@ tests [can] :
54
54
  tell ^^.b to randomize (10000)
55
55
  eval ^^.a = ^^.b
56
56
  refute "expected them to not be equal"
57
+
58
+ format_int [test] :
59
+ description [string] : Format an integer
60
+ f [int] :
61
+ on_test [script] :
62
+ put 1234567 into ^.f
63
+ tell ^.f to format
64
+ eval it = '1,234,567'
65
+ assert "expected formatted integer to match"
66
+
67
+ put 42 into ^.f
68
+ tell ^.f to format ('%05d')
69
+ eval it = '00042'
70
+ assert "expected formatted integer to match"
@@ -0,0 +1,44 @@
1
+ #
2
+ # String tests
3
+ #
4
+
5
+ tests [can] :
6
+ objs [can] :
7
+ string [can] :
8
+
9
+ s [string] :
10
+
11
+ up_down [test] :
12
+ description [string] : Convert string case
13
+ on_test [script] :
14
+ put 'hello' into ^^.s
15
+ tell ^^.s to up
16
+ eval ^^.s = 'HELLO'
17
+ assert "expected string to be uppercase"
18
+ tell ^^.s to down
19
+ eval ^^.s = 'hello'
20
+ assert "expected string to be lowercase"
21
+
22
+ trim [test] :
23
+ description [string] : Trim whitespace from a string
24
+ on_test [script] :
25
+ put ' hello ' into ^^.s
26
+ tell ^^.s to trim
27
+ eval it = 'hello'
28
+ assert "expected trimmed string to equal 'hello'"
29
+
30
+ sub [test] :
31
+ description [string] : Substitute in a string
32
+ on_test [script] :
33
+ put 'hello world' into ^^.s
34
+ tell ^^.s to sub ('world' 'gloo')
35
+ eval it = 'hello gloo'
36
+ assert "expected substituted string to equal 'hello gloo'"
37
+
38
+ count_chars [test] :
39
+ description [string] : Count the characters in a string
40
+ on_test [script] :
41
+ put 'hello' into ^^.s
42
+ tell ^^.s to count_chars
43
+ eval it = 5
44
+ assert "expected 5 characters"
@@ -0,0 +1,14 @@
1
+ #
2
+ # Create verb tests
3
+ #
4
+
5
+ tests [can] :
6
+ verbs [can] :
7
+ create [can] :
8
+
9
+ create_str [test] :
10
+ description [string] : Create sets it to the initial value.
11
+ on_test [script] :
12
+ create cx as string : 'hello'
13
+ eval it = 'hello'
14
+ assert "expected it to equal the created value"
@@ -0,0 +1,20 @@
1
+ #
2
+ # Invoke verb tests
3
+ #
4
+
5
+ tests [can] :
6
+ verbs [can] :
7
+ invoke [can] :
8
+
9
+ f [ƒ] :
10
+ params [can] :
11
+ on_invoke [script] :
12
+ put 42 into ^.result
13
+ result [int] :
14
+
15
+ invoke_test [test] :
16
+ description [string] : Invoke a function and check the result.
17
+ on_test [script] :
18
+ invoke tests.verbs.invoke.f
19
+ eval it = 42
20
+ assert "expected it to be 42"
@@ -0,0 +1,22 @@
1
+ #
2
+ # Unless verb tests
3
+ #
4
+
5
+ tests [can] :
6
+ verbs [can] :
7
+ unless [can] :
8
+
9
+ b [bool] : false
10
+
11
+ unless_false [test] :
12
+ description [string] : Unless false, do block runs.
13
+ on_test [script] :
14
+ unless ^^.b do eval true
15
+ assert "expected do block to run when condition is false"
16
+
17
+ unless_true [test] :
18
+ description [string] : Unless true, do block is skipped.
19
+ on_test [script] :
20
+ eval false
21
+ unless true do eval true
22
+ refute "expected do block to be skipped when condition is true"
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.3.9
4
+ version: '6.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-06-11 00:00:00.000000000 Z
11
+ date: 2026-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -385,8 +385,6 @@ files:
385
385
  - lib/gloo/plugin/callback.rb
386
386
  - lib/gloo/plugin/ext_manager.rb
387
387
  - lib/gloo/plugin/lib_manager.rb
388
- - lib/gloo/utils/format.rb
389
- - lib/gloo/utils/words.rb
390
388
  - lib/gloo/verbs/break.rb
391
389
  - lib/gloo/verbs/check.rb
392
390
  - lib/gloo/verbs/cls.rb
@@ -411,39 +409,51 @@ files:
411
409
  - lib/gloo/verbs/save.rb
412
410
  - lib/gloo/verbs/show.rb
413
411
  - lib/gloo/verbs/tell.rb
412
+ - lib/gloo/verbs/throw.rb
414
413
  - lib/gloo/verbs/unless.rb
415
414
  - lib/gloo/verbs/unload.rb
416
415
  - lib/gloo/verbs/version.rb
417
416
  - lib/gloo/verbs/wait.rb
418
417
  - lib/run.rb
419
418
  - test.gloo/basic.test.gloo
419
+ - test.gloo/ctrl/each.test.gloo
420
420
  - test.gloo/dt/date.test.gloo
421
+ - test.gloo/dt/datetime.test.gloo
421
422
  - test.gloo/dt/time.test.gloo
423
+ - test.gloo/lang/dt_comparisons.test.gloo
424
+ - test.gloo/lang/exceptions.test.gloo
422
425
  - test.gloo/lang/gloo_sys.test.gloo
423
426
  - test.gloo/lang/ops.test.gloo
424
427
  - test.gloo/math/add.test.gloo
425
428
  - test.gloo/math/div.test.gloo
426
429
  - test.gloo/math/mult.test.gloo
427
430
  - test.gloo/math/sub.test.gloo
431
+ - test.gloo/objs/alias.test.gloo
428
432
  - test.gloo/objs/bool.test.gloo
429
433
  - test.gloo/objs/can.test.gloo
434
+ - test.gloo/objs/decimal.test.gloo
435
+ - test.gloo/objs/erb.test.gloo
430
436
  - test.gloo/objs/int.test.gloo
431
437
  - test.gloo/objs/obj.test.gloo
432
438
  - test.gloo/objs/script.test.gloo
439
+ - test.gloo/objs/string.test.gloo
433
440
  - test.gloo/objs/text.test.gloo
434
441
  - test.gloo/objs/untyped.test.gloo
435
442
  - test.gloo/string/str.test.gloo
436
443
  - test.gloo/string/str_gen.test.gloo
437
444
  - test.gloo/verbs/break.test.gloo
438
445
  - test.gloo/verbs/check.test.gloo
446
+ - test.gloo/verbs/create.test.gloo
439
447
  - test.gloo/verbs/eval.test.gloo
440
448
  - test.gloo/verbs/exists.test.gloo
441
449
  - test.gloo/verbs/if.test.gloo
450
+ - test.gloo/verbs/invoke.test.gloo
442
451
  - test.gloo/verbs/log.test.gloo
443
452
  - test.gloo/verbs/move.test.gloo
444
453
  - test.gloo/verbs/put.test.gloo
445
454
  - test.gloo/verbs/run.test.gloo
446
455
  - test.gloo/verbs/tell.test.gloo
456
+ - test.gloo/verbs/unless.test.gloo
447
457
  homepage: http://github.com/ecrane/gloo
448
458
  licenses:
449
459
  - MIT
@@ -1,21 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved.
3
- #
4
- # Formatting utilities
5
- #
6
-
7
- module Gloo
8
- module Utils
9
- class Format
10
-
11
- #
12
- # Format number, adding comma separators.
13
- # Ex: 1000 -> 1,000
14
- #
15
- def self.number( num )
16
- return num.to_s.reverse.scan( /.{1,3}/ ).join( ',' ).reverse
17
- end
18
-
19
- end
20
- end
21
- end
@@ -1,19 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Utilities related to words (strings).
5
- #
6
-
7
- require 'active_support/inflector'
8
-
9
- module Gloo
10
- module Utils
11
- class Words
12
-
13
- def self.pluralize( word )
14
- return word.pluralize
15
- end
16
-
17
- end
18
- end
19
- end