gloo 6.0.1 → 6.2.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CLAUDE.md +9 -3
  3. data/README.md +39 -7
  4. data/docs/application.md +184 -0
  5. data/docs/getting_started.md +110 -0
  6. data/docs/iterators.md +294 -0
  7. data/docs/language_objects.md +190 -0
  8. data/docs/language_scripting.md +62 -0
  9. data/docs/language_syntax.md +334 -0
  10. data/docs/objects.md +77 -0
  11. data/docs/operators.md +62 -0
  12. data/docs/plugins.md +376 -0
  13. data/docs/verbs.md +64 -0
  14. data/docs/web_app.md +211 -0
  15. data/gloo.gemspec +3 -1
  16. data/lib/VERSION +1 -1
  17. data/lib/VERSION_NOTES +16 -0
  18. data/lib/gloo/app/engine.rb +17 -2
  19. data/lib/gloo/app/log.rb +5 -4
  20. data/lib/gloo/app/platform.rb +34 -2
  21. data/lib/gloo/app/prompt.rb +2 -1
  22. data/lib/gloo/app/settings.rb +25 -15
  23. data/lib/gloo/app/table.rb +7 -3
  24. data/lib/gloo/app/theme.rb +144 -0
  25. data/lib/gloo/core/gloo_system.rb +52 -1
  26. data/lib/gloo/core/invoker.rb +102 -0
  27. data/lib/gloo/core/parser.rb +48 -7
  28. data/lib/gloo/core/tokens.rb +81 -1
  29. data/lib/gloo/docs/doc_data.rb +160 -0
  30. data/lib/gloo/docs/help_shell.rb +332 -0
  31. data/lib/gloo/docs/markdown_renderer.rb +39 -0
  32. data/lib/gloo/expr/call.rb +54 -0
  33. data/lib/gloo/expr/expression.rb +3 -0
  34. data/lib/gloo/objs/basic/alias.rb +53 -0
  35. data/lib/gloo/objs/basic/boolean.rb +30 -0
  36. data/lib/gloo/objs/basic/container.rb +38 -0
  37. data/lib/gloo/objs/basic/decimal.rb +30 -0
  38. data/lib/gloo/objs/basic/integer.rb +58 -0
  39. data/lib/gloo/objs/basic/script.rb +31 -0
  40. data/lib/gloo/objs/basic/string.rb +31 -4
  41. data/lib/gloo/objs/basic/string_msgs.rb +212 -2
  42. data/lib/gloo/objs/basic/text.rb +30 -4
  43. data/lib/gloo/objs/basic/untyped.rb +21 -0
  44. data/lib/gloo/objs/ctrl/each.rb +63 -1
  45. data/lib/gloo/objs/ctrl/function.rb +86 -4
  46. data/lib/gloo/objs/ctrl/repeat.rb +41 -0
  47. data/lib/gloo/objs/dt/date.rb +43 -0
  48. data/lib/gloo/objs/dt/datetime.rb +50 -0
  49. data/lib/gloo/objs/dt/time.rb +43 -0
  50. data/lib/gloo/objs/str_utils/cipher.rb +59 -0
  51. data/lib/gloo/objs/str_utils/outline.rb +65 -1
  52. data/lib/gloo/objs/str_utils/password.rb +56 -0
  53. data/lib/gloo/objs/system/erb.rb +39 -0
  54. data/lib/gloo/objs/system/file_handle.rb +56 -0
  55. data/lib/gloo/objs/system/system.rb +29 -0
  56. data/lib/gloo/objs/web/http_get.rb +35 -0
  57. data/lib/gloo/objs/web/http_post.rb +33 -0
  58. data/lib/gloo/objs/web/json.rb +40 -0
  59. data/lib/gloo/objs/web/uri.rb +40 -0
  60. data/lib/gloo/shell/command_node.rb +39 -0
  61. data/lib/gloo/shell/context.rb +93 -0
  62. data/lib/gloo/shell/runner.rb +315 -0
  63. data/lib/gloo/verbs/break.rb +32 -0
  64. data/lib/gloo/verbs/check.rb +49 -0
  65. data/lib/gloo/verbs/cls.rb +18 -0
  66. data/lib/gloo/verbs/context.rb +47 -0
  67. data/lib/gloo/verbs/create.rb +42 -0
  68. data/lib/gloo/verbs/eval.rb +27 -0
  69. data/lib/gloo/verbs/execute.rb +27 -0
  70. data/lib/gloo/verbs/exists.rb +54 -2
  71. data/lib/gloo/verbs/files.rb +22 -0
  72. data/lib/gloo/verbs/help.rb +46 -178
  73. data/lib/gloo/verbs/if.rb +52 -0
  74. data/lib/gloo/verbs/invoke.rb +88 -33
  75. data/lib/gloo/verbs/list.rb +37 -4
  76. data/lib/gloo/verbs/load.rb +55 -2
  77. data/lib/gloo/verbs/log.rb +44 -0
  78. data/lib/gloo/verbs/move.rb +36 -1
  79. data/lib/gloo/verbs/put.rb +35 -0
  80. data/lib/gloo/verbs/quit.rb +19 -0
  81. data/lib/gloo/verbs/redirect.rb +52 -2
  82. data/lib/gloo/verbs/reload.rb +27 -0
  83. data/lib/gloo/verbs/run.rb +39 -0
  84. data/lib/gloo/verbs/save.rb +26 -0
  85. data/lib/gloo/verbs/show.rb +54 -0
  86. data/lib/gloo/verbs/tell.rb +32 -0
  87. data/lib/gloo/verbs/throw.rb +29 -0
  88. data/lib/gloo/verbs/unless.rb +50 -0
  89. data/lib/gloo/verbs/unload.rb +23 -0
  90. data/lib/gloo/verbs/version.rb +37 -3
  91. data/lib/gloo/verbs/wait.rb +26 -0
  92. data/test.gloo/objs/string.test.gloo +54 -0
  93. data/test.gloo/verbs/invoke.test.gloo +73 -0
  94. metadata +26 -10
  95. data/.DS_Store +0 -0
  96. data/.travis.yml +0 -5
@@ -18,3 +18,76 @@ tests [can] :
18
18
  invoke tests.verbs.invoke.f
19
19
  eval it = 42
20
20
  assert "expected it to be 42"
21
+
22
+ add [ƒ] :
23
+ on_invoke [script] :
24
+ put ^.params.x + ^.params.y into ^.result
25
+ params [can] :
26
+ x [int] :
27
+ y [int] :
28
+ result [int] :
29
+
30
+ total [int] :
31
+
32
+ inline_invoke_in_show_test [test] :
33
+ description [string] : Inline invoke( ... ) works inside show.
34
+ on_test [script] :
35
+ show invoke( tests.verbs.invoke.add 3 4 )
36
+ eval it = 7
37
+ assert "expected it to be 7"
38
+
39
+ inline_shortcut_in_show_test [test] :
40
+ description [string] : Inline ~>( ... ) works inside show, same as invoke( ... ).
41
+ on_test [script] :
42
+ show ~>( tests.verbs.invoke.add 3 4 )
43
+ eval it = 7
44
+ assert "expected it to be 7"
45
+
46
+ inline_invoke_with_operator_test [test] :
47
+ description [string] : Inline invoke( ... ) composes with an operator.
48
+ on_test [script] :
49
+ show "Total: " + invoke( tests.verbs.invoke.add 3 4 )
50
+ eval it = "Total: 7"
51
+ assert "expected it to be 'Total: 7'"
52
+
53
+ inline_invoke_in_put_test [test] :
54
+ description [string] : Inline invoke( ... ) works inside put ... into.
55
+ on_test [script] :
56
+ put 0 into ^^.total
57
+ put invoke( tests.verbs.invoke.add 3 4 ) into ^^.total
58
+ eval ^^.total = 7
59
+ assert "expected total to be 7"
60
+
61
+ inline_invoke_in_if_test [test] :
62
+ description [string] : Inline invoke( ... ) works inside if.
63
+ on_test [script] :
64
+ eval false
65
+ if invoke( tests.verbs.invoke.add 3 4 ) = 7 then eval true
66
+ assert "expected the if branch to have run"
67
+
68
+ err_fired [bool] : false
69
+
70
+ on_error [script] :
71
+ put true into ^.err_fired
72
+
73
+ inline_invoke_error_test [test] :
74
+ description [string] : Inline invoke( ... ) reports an error for an unresolved target, same as the standalone verb.
75
+ on_test [script] :
76
+ put false into ^^.err_fired
77
+ show invoke( tests.verbs.invoke.no_such_function )
78
+ eval ^^.err_fired = true
79
+ assert "expected on_error to have fired for an unresolved inline call target"
80
+
81
+ greet [ƒ] :
82
+ on_invoke [script] :
83
+ put 'Hi, ' + ^.params.name into ^.result
84
+ params [can] :
85
+ name [string] :
86
+ result [string] :
87
+
88
+ inline_invoke_with_quoted_arg_test [test] :
89
+ description [string] : A quoted string arg inside invoke( ... ) is passed through as one arg, not split on its internal space.
90
+ on_test [script] :
91
+ show invoke( tests.verbs.invoke.greet "Bob Smith" )
92
+ eval it = "Hi, Bob Smith"
93
+ assert "expected it to be 'Hi, Bob Smith'"
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gloo
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.1
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Crane
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-07-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -251,12 +250,10 @@ executables:
251
250
  extensions: []
252
251
  extra_rdoc_files: []
253
252
  files:
254
- - ".DS_Store"
255
253
  - ".gitignore"
256
254
  - ".rubocop.yml"
257
255
  - ".ruby-gemset"
258
256
  - ".ruby-version"
259
- - ".travis.yml"
260
257
  - CLAUDE.md
261
258
  - CODE_OF_CONDUCT.md
262
259
  - Gemfile
@@ -266,6 +263,17 @@ files:
266
263
  - bin/console
267
264
  - bin/run
268
265
  - bin/setup
266
+ - docs/application.md
267
+ - docs/getting_started.md
268
+ - docs/iterators.md
269
+ - docs/language_objects.md
270
+ - docs/language_scripting.md
271
+ - docs/language_syntax.md
272
+ - docs/objects.md
273
+ - docs/operators.md
274
+ - docs/plugins.md
275
+ - docs/verbs.md
276
+ - docs/web_app.md
269
277
  - exe/gloo
270
278
  - exe/o
271
279
  - gloo.gemspec
@@ -284,6 +292,7 @@ files:
284
292
  - lib/gloo/app/running_app.rb
285
293
  - lib/gloo/app/settings.rb
286
294
  - lib/gloo/app/table.rb
295
+ - lib/gloo/app/theme.rb
287
296
  - lib/gloo/convert/converter.rb
288
297
  - lib/gloo/convert/falseclass_to_integer.rb
289
298
  - lib/gloo/convert/nilclass_to_date.rb
@@ -305,6 +314,7 @@ files:
305
314
  - lib/gloo/core/gloo_system.rb
306
315
  - lib/gloo/core/heap.rb
307
316
  - lib/gloo/core/here.rb
317
+ - lib/gloo/core/invoker.rb
308
318
  - lib/gloo/core/it.rb
309
319
  - lib/gloo/core/literal.rb
310
320
  - lib/gloo/core/obj.rb
@@ -314,12 +324,16 @@ files:
314
324
  - lib/gloo/core/pn.rb
315
325
  - lib/gloo/core/tokens.rb
316
326
  - lib/gloo/core/verb.rb
327
+ - lib/gloo/docs/doc_data.rb
328
+ - lib/gloo/docs/help_shell.rb
329
+ - lib/gloo/docs/markdown_renderer.rb
317
330
  - lib/gloo/exec/action.rb
318
331
  - lib/gloo/exec/dispatch.rb
319
332
  - lib/gloo/exec/exec_env.rb
320
333
  - lib/gloo/exec/runner.rb
321
334
  - lib/gloo/exec/script.rb
322
335
  - lib/gloo/exec/stack.rb
336
+ - lib/gloo/expr/call.rb
323
337
  - lib/gloo/expr/expression.rb
324
338
  - lib/gloo/expr/l_boolean.rb
325
339
  - lib/gloo/expr/l_decimal.rb
@@ -379,6 +393,9 @@ files:
379
393
  - lib/gloo/plugin/callback.rb
380
394
  - lib/gloo/plugin/ext_manager.rb
381
395
  - lib/gloo/plugin/lib_manager.rb
396
+ - lib/gloo/shell/command_node.rb
397
+ - lib/gloo/shell/context.rb
398
+ - lib/gloo/shell/runner.rb
382
399
  - lib/gloo/verbs/break.rb
383
400
  - lib/gloo/verbs/check.rb
384
401
  - lib/gloo/verbs/cls.rb
@@ -448,11 +465,11 @@ files:
448
465
  - test.gloo/verbs/run.test.gloo
449
466
  - test.gloo/verbs/tell.test.gloo
450
467
  - test.gloo/verbs/unless.test.gloo
451
- homepage: http://github.com/ecrane/gloo
468
+ homepage: https://github.com/ecrane/gloo
452
469
  licenses:
453
470
  - MIT
454
- metadata: {}
455
- post_install_message:
471
+ metadata:
472
+ documentation_uri: https://github.com/ecrane/gloo
456
473
  rdoc_options: []
457
474
  require_paths:
458
475
  - lib
@@ -467,8 +484,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
467
484
  - !ruby/object:Gem::Version
468
485
  version: '0'
469
486
  requirements: []
470
- rubygems_version: 3.5.16
471
- signing_key:
487
+ rubygems_version: 4.0.17
472
488
  specification_version: 4
473
489
  summary: Gloo scripting language. A scripting language built on ruby.
474
490
  test_files: []
data/.DS_Store DELETED
Binary file
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.1
5
- before_install: gem install bundler -v 1.16.2