gloo 0.6.1 → 0.7.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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/gloo/app/args.rb +48 -6
  4. data/lib/gloo/app/engine.rb +58 -39
  5. data/lib/gloo/app/help.rb +126 -25
  6. data/lib/gloo/app/info.rb +3 -1
  7. data/lib/gloo/app/log.rb +23 -0
  8. data/lib/gloo/app/mode.rb +2 -0
  9. data/lib/gloo/app/settings.rb +75 -68
  10. data/lib/gloo/convert/converter.rb +35 -0
  11. data/lib/gloo/convert/string_to_datetime.rb +1 -1
  12. data/lib/gloo/convert/string_to_decimal.rb +1 -1
  13. data/lib/gloo/convert/string_to_integer.rb +1 -1
  14. data/lib/gloo/core/dictionary.rb +99 -22
  15. data/lib/gloo/core/error.rb +19 -8
  16. data/lib/gloo/core/event_manager.rb +4 -0
  17. data/lib/gloo/core/factory.rb +11 -0
  18. data/lib/gloo/core/gloo_system.rb +1 -1
  19. data/lib/gloo/core/heap.rb +11 -3
  20. data/lib/gloo/core/it.rb +6 -0
  21. data/lib/gloo/core/literal.rb +5 -0
  22. data/lib/gloo/core/obj.rb +14 -0
  23. data/lib/gloo/core/op.rb +7 -0
  24. data/lib/gloo/core/parser.rb +6 -0
  25. data/lib/gloo/core/pn.rb +36 -0
  26. data/lib/gloo/core/tokens.rb +66 -22
  27. data/lib/gloo/core/verb.rb +4 -0
  28. data/lib/gloo/exec/exec_env.rb +13 -1
  29. data/lib/gloo/expr/expression.rb +26 -4
  30. data/lib/gloo/expr/l_boolean.rb +6 -0
  31. data/lib/gloo/expr/l_decimal.rb +5 -0
  32. data/lib/gloo/expr/l_integer.rb +7 -0
  33. data/lib/gloo/expr/l_string.rb +7 -0
  34. data/lib/gloo/expr/op_div.rb +2 -0
  35. data/lib/gloo/expr/op_minus.rb +2 -0
  36. data/lib/gloo/expr/op_mult.rb +2 -0
  37. data/lib/gloo/expr/op_plus.rb +2 -0
  38. data/lib/gloo/help/app/application.txt +22 -0
  39. data/lib/gloo/help/app/configuration.txt +7 -0
  40. data/lib/gloo/help/app/default_help.txt +14 -0
  41. data/lib/gloo/help/app/logging.txt +16 -0
  42. data/lib/gloo/help/core/color.txt +31 -0
  43. data/lib/gloo/help/core/error.txt +33 -0
  44. data/lib/gloo/help/core/events.txt +21 -0
  45. data/lib/gloo/help/core/gloo_system.txt +54 -0
  46. data/lib/gloo/help/core/here.txt +30 -0
  47. data/lib/gloo/help/core/it.txt +23 -0
  48. data/lib/gloo/help/core/ops.txt +16 -0
  49. data/lib/gloo/help/core/pathname.txt +29 -0
  50. data/lib/gloo/help/objs/basic/alias.txt +36 -0
  51. data/lib/gloo/help/objs/basic/boolean.txt +28 -0
  52. data/lib/gloo/help/objs/basic/container.txt +33 -0
  53. data/lib/gloo/help/objs/basic/decimal.txt +28 -0
  54. data/lib/gloo/help/objs/basic/integer.txt +27 -0
  55. data/lib/gloo/help/objs/basic/script.txt +29 -0
  56. data/lib/gloo/help/objs/basic/string.txt +28 -0
  57. data/lib/gloo/help/objs/basic/text.txt +27 -0
  58. data/lib/gloo/help/objs/basic/untyped.txt +22 -0
  59. data/lib/gloo/help/objs/cli/banner.txt +49 -0
  60. data/lib/gloo/help/objs/cli/bar.txt +34 -0
  61. data/lib/gloo/help/objs/cli/colorize.txt +33 -0
  62. data/lib/gloo/help/objs/cli/confirm.txt +26 -0
  63. data/lib/gloo/help/objs/cli/menu.txt +44 -0
  64. data/lib/gloo/help/objs/cli/menu_item.txt +26 -0
  65. data/lib/gloo/help/objs/cli/pastel.txt +43 -0
  66. data/lib/gloo/help/objs/cli/prompt.txt +27 -0
  67. data/lib/gloo/help/objs/cli/select.txt +34 -0
  68. data/lib/gloo/help/objs/ctrl/each.txt +48 -0
  69. data/lib/gloo/help/objs/ctrl/repeat.txt +38 -0
  70. data/lib/gloo/help/objs/data/markdown.txt +25 -0
  71. data/lib/gloo/help/objs/data/table.txt +46 -0
  72. data/lib/gloo/help/objs/dev/git_repo.txt +35 -0
  73. data/lib/gloo/help/objs/dt/date.txt +23 -0
  74. data/lib/gloo/help/objs/dt/datetime.txt +24 -0
  75. data/lib/gloo/help/objs/dt/time.txt +23 -0
  76. data/lib/gloo/help/objs/ror/erb.txt +37 -0
  77. data/lib/gloo/help/objs/ror/eval.txt +24 -0
  78. data/lib/gloo/help/objs/snd/play.txt +23 -0
  79. data/lib/gloo/help/objs/snd/say.txt +28 -0
  80. data/lib/gloo/help/objs/system/file.txt +41 -0
  81. data/lib/gloo/help/objs/system/system.txt +32 -0
  82. data/lib/gloo/help/objs/web/http_get.txt +35 -0
  83. data/lib/gloo/help/objs/web/http_post.txt +32 -0
  84. data/lib/gloo/help/objs/web/json.txt +34 -0
  85. data/lib/gloo/help/objs/web/slack.txt +33 -0
  86. data/lib/gloo/help/objs/web/teams.txt +30 -0
  87. data/lib/gloo/help/objs/web/uri.txt +37 -0
  88. data/lib/gloo/help/verbs/alert.txt +33 -0
  89. data/lib/gloo/help/verbs/beep.txt +25 -0
  90. data/lib/gloo/help/verbs/cls.txt +24 -0
  91. data/lib/gloo/help/verbs/context.txt +43 -0
  92. data/lib/gloo/help/verbs/create.txt +33 -0
  93. data/lib/gloo/help/verbs/help.txt +34 -0
  94. data/lib/gloo/help/verbs/if.txt +37 -0
  95. data/lib/gloo/help/verbs/list.txt +34 -0
  96. data/lib/gloo/help/verbs/load.txt +38 -0
  97. data/lib/gloo/help/verbs/move.txt +42 -0
  98. data/lib/gloo/help/verbs/put.txt +38 -0
  99. data/lib/gloo/help/verbs/quit.txt +25 -0
  100. data/lib/gloo/help/verbs/run.txt +41 -0
  101. data/lib/gloo/help/verbs/save.txt +26 -0
  102. data/lib/gloo/help/verbs/show.txt +30 -0
  103. data/lib/gloo/help/verbs/tell.txt +34 -0
  104. data/lib/gloo/help/verbs/unless.txt +38 -0
  105. data/lib/gloo/help/verbs/version.txt +32 -0
  106. data/lib/gloo/help/verbs/wait.txt +29 -0
  107. data/lib/gloo/objs/basic/alias.rb +0 -33
  108. data/lib/gloo/objs/basic/boolean.rb +6 -27
  109. data/lib/gloo/objs/basic/container.rb +0 -33
  110. data/lib/gloo/objs/basic/decimal.rb +8 -28
  111. data/lib/gloo/objs/basic/integer.rb +5 -26
  112. data/lib/gloo/objs/basic/script.rb +0 -26
  113. data/lib/gloo/objs/basic/string.rb +6 -26
  114. data/lib/gloo/objs/basic/text.rb +0 -25
  115. data/lib/gloo/objs/basic/untyped.rb +0 -26
  116. data/lib/gloo/objs/cli/banner.rb +0 -29
  117. data/lib/gloo/objs/cli/bar.rb +0 -29
  118. data/lib/gloo/objs/cli/colorize.rb +4 -34
  119. data/lib/gloo/objs/cli/confirm.rb +6 -36
  120. data/lib/gloo/objs/cli/menu.rb +4 -34
  121. data/lib/gloo/objs/cli/menu_item.rb +0 -33
  122. data/lib/gloo/objs/cli/pastel.rb +4 -27
  123. data/lib/gloo/objs/cli/prompt.rb +4 -28
  124. data/lib/gloo/objs/cli/select.rb +4 -31
  125. data/lib/gloo/objs/ctrl/each.rb +33 -33
  126. data/lib/gloo/objs/ctrl/repeat.rb +8 -29
  127. data/lib/gloo/objs/data/markdown.rb +0 -25
  128. data/lib/gloo/objs/data/table.rb +4 -32
  129. data/lib/gloo/objs/dev/git.rb +12 -30
  130. data/lib/gloo/objs/dt/date.rb +3 -25
  131. data/lib/gloo/objs/dt/datetime.rb +4 -26
  132. data/lib/gloo/objs/dt/time.rb +3 -25
  133. data/lib/gloo/objs/ror/erb.rb +11 -45
  134. data/lib/gloo/objs/ror/eval.rb +11 -38
  135. data/lib/gloo/objs/snd/play.rb +2 -25
  136. data/lib/gloo/objs/snd/say.rb +9 -31
  137. data/lib/gloo/objs/system/file_handle.rb +0 -38
  138. data/lib/gloo/objs/system/system.rb +16 -46
  139. data/lib/gloo/objs/web/http_get.rb +57 -83
  140. data/lib/gloo/objs/web/http_post.rb +8 -31
  141. data/lib/gloo/objs/web/json.rb +11 -31
  142. data/lib/gloo/objs/web/slack.rb +7 -34
  143. data/lib/gloo/objs/web/teams.rb +13 -48
  144. data/lib/gloo/objs/web/uri.rb +0 -29
  145. data/lib/gloo/persist/file_loader.rb +8 -0
  146. data/lib/gloo/persist/file_saver.rb +6 -0
  147. data/lib/gloo/persist/file_storage.rb +2 -0
  148. data/lib/gloo/persist/line_splitter.rb +2 -0
  149. data/lib/gloo/persist/persist_man.rb +6 -0
  150. data/lib/gloo/verbs/alert.rb +30 -44
  151. data/lib/gloo/verbs/beep.rb +0 -30
  152. data/lib/gloo/verbs/cls.rb +0 -30
  153. data/lib/gloo/verbs/context.rb +9 -39
  154. data/lib/gloo/verbs/create.rb +17 -32
  155. data/lib/gloo/verbs/help.rb +151 -115
  156. data/lib/gloo/verbs/if.rb +46 -44
  157. data/lib/gloo/verbs/list.rb +36 -54
  158. data/lib/gloo/verbs/load.rb +8 -37
  159. data/lib/gloo/verbs/move.rb +12 -51
  160. data/lib/gloo/verbs/put.rb +28 -52
  161. data/lib/gloo/verbs/quit.rb +0 -31
  162. data/lib/gloo/verbs/run.rb +23 -39
  163. data/lib/gloo/verbs/save.rb +0 -33
  164. data/lib/gloo/verbs/show.rb +6 -31
  165. data/lib/gloo/verbs/tell.rb +31 -31
  166. data/lib/gloo/verbs/unless.rb +47 -46
  167. data/lib/gloo/verbs/version.rb +0 -30
  168. data/lib/gloo/verbs/wait.rb +0 -31
  169. metadata +72 -3
  170. data/lib/gloo/help/help.md +0 -16
@@ -0,0 +1,27 @@
1
+ INTEGER OBJECT TYPE
2
+ NAME: integer
3
+ SHORTCUT: int
4
+
5
+ DESCRIPTION
6
+ An integer (numeric) value.
7
+
8
+ CHILDREN
9
+ None
10
+
11
+ MESSAGES
12
+ inc - Increment the integer value by 1.
13
+ dec - Decrement the integer value by 1.
14
+
15
+ EXAMPLE
16
+
17
+ i [can] :
18
+ x [integer] : 0
19
+ on_load [script] :
20
+ show i.x
21
+ tell i.x to inc
22
+ show i.x
23
+ put i.x * 10 into i.x
24
+ show i.x
25
+
26
+ SEE ALSO
27
+ decimal
@@ -0,0 +1,29 @@
1
+ SCRIPT OBJECT TYPE
2
+ NAME: script
3
+ SHORTCUT: cmd
4
+
5
+ DESCRIPTION
6
+ An exectutable script.
7
+
8
+ CHILDREN
9
+ None
10
+
11
+ MESSAGES
12
+ run - Run the script.
13
+ The script can be run by telling the object or run.
14
+ It can all be executed with the run verb.
15
+
16
+ EXAMPLE
17
+
18
+ script [can] :
19
+ on_load [script] :
20
+ show "Showing multiple lines..."
21
+ show script.msg1
22
+ show script.msg2
23
+ show script.msg3
24
+ show "Done."
25
+ msg1 [string] : one
26
+ msg2 [string] : two
27
+ msg3 [string] : three
28
+
29
+ SEE ALSO
@@ -0,0 +1,28 @@
1
+ STRING OBJECT TYPE
2
+ NAME: string
3
+ SHORTCUT: str
4
+
5
+ DESCRIPTION
6
+ A string value.
7
+
8
+ CHILDREN
9
+ None
10
+
11
+ MESSAGES
12
+ up - Convert the string to uppercase.
13
+ down - Convert the string to lowercase.
14
+ size - Get the size of the string.
15
+
16
+ EXAMPLE
17
+
18
+ s [can] :
19
+ msg [string] : Hello World!
20
+ on_load [script] :
21
+ show s.msg
22
+ tell s.msg to up
23
+ show s.msg
24
+ tell s.msg to size
25
+ show it
26
+
27
+ SEE ALSO
28
+ text
@@ -0,0 +1,27 @@
1
+ TEXT OBJECT TYPE
2
+ NAME: text
3
+ SHORTCUT: txt
4
+
5
+ DESCRIPTION
6
+ A longer, multi-line text string.
7
+ Use BEGIN and END to mark the text range.
8
+
9
+ CHILDREN
10
+ None
11
+
12
+ MESSAGES
13
+ edit - Edit the text field in the default editor.
14
+ page - Show the text, paginated.
15
+
16
+ EXAMPLE
17
+
18
+ t [container] :
19
+ msg [txt] : BEGIN
20
+ I will now write a poem
21
+ of two lines or less
22
+ END
23
+ on_load [script] :
24
+ show t.msg
25
+
26
+ SEE ALSO
27
+ string
@@ -0,0 +1,22 @@
1
+ UNTYPED OBJECT TYPE
2
+ NAME: untyped
3
+ SHORTCUT: un
4
+
5
+ DESCRIPTION
6
+ An untyped object.
7
+ If no type is specified when an object is created it
8
+ will be of this type.
9
+
10
+ CHILDREN
11
+ None
12
+
13
+ MESSAGES
14
+ None
15
+
16
+ EXAMPLE
17
+
18
+ > create x
19
+ > put 1 into x
20
+ > put 'string' into x
21
+
22
+ SEE ALSO
@@ -0,0 +1,49 @@
1
+ BANNER OBJECT TYPE
2
+ NAME: banner
3
+ SHORTCUT: ban
4
+
5
+ DESCRIPTION
6
+ Banner text in large, colored font.
7
+
8
+ CHILDREN
9
+ text - string
10
+ The text for the banner.
11
+ style - string
12
+ The banner style. See tty-font for options.
13
+ color - string
14
+ The color for the banner. See pastel for options.
15
+
16
+ MESSAGES
17
+ show - Show the text banner.
18
+
19
+ EXAMPLE
20
+
21
+ ban [can] :
22
+ on_load [script] :
23
+ tell ban.one to show
24
+ tell ban.two to show
25
+ tell ban.three to show
26
+ tell ban.four to show
27
+ tell ban.five to show
28
+ one [banner] :
29
+ text [string] : Something New
30
+ style [string] : standard
31
+ color [string] : white on_green
32
+ two [banner] :
33
+ text [string] : Star Wars
34
+ style [string] : starwars
35
+ color [string] : red
36
+ three [banner] :
37
+ text [string] : Many_Dimensions
38
+ style [string] : 3d
39
+ color [string] : blue
40
+ four [banner] :
41
+ text [string] : As An Arrow
42
+ style [string] : straight
43
+ color [string] : yellow
44
+ five [banner] :
45
+ text [string] : Cranium
46
+ style [string] : block
47
+ color [string] : white on_yellow
48
+
49
+ SEE ALSO
@@ -0,0 +1,34 @@
1
+ BAR OBJECT TYPE
2
+ NAME: bar
3
+ SHORTCUT: bar
4
+
5
+ DESCRIPTION
6
+ CLI progress bar
7
+
8
+ CHILDREN
9
+ name - string
10
+ The name of the progress bar.
11
+ total - integer - 100
12
+ The total for the bar.
13
+
14
+ MESSAGES
15
+ start - Start the bar.
16
+ advance <amount> - Advance by the given amount.
17
+ stop - Complete the bar.
18
+
19
+ EXAMPLE
20
+
21
+ bar [can] :
22
+ on_load [script] :
23
+ tell bar.progress to start
24
+ tell bar.progress to advance
25
+ wait
26
+ tell bar.progress to advance (30)
27
+ wait
28
+ tell bar.progress to advance (40)
29
+ wait
30
+ tell bar.progress to stop
31
+ progress [bar] :
32
+ name [string] : going
33
+
34
+ SEE ALSO
@@ -0,0 +1,33 @@
1
+ COLORIZE OBJECT TYPE
2
+ NAME: colorize
3
+ SHORTCUT: color
4
+
5
+ DESCRIPTION
6
+ The Colorize object can be used to write output in color.
7
+ The Colorize container can contain multiple strings, each
8
+ one can have a different color as specified by the names
9
+ of the children.
10
+
11
+ CHILDREN
12
+ <color> - string - no default value
13
+ The name of the child or children is the color.
14
+ The string's value is what will be written out.
15
+
16
+ MESSAGES
17
+ run - Output the string in the color specified.
18
+
19
+ EXAMPLE
20
+
21
+ color [can] :
22
+ w [colorize] :
23
+ white [string] : This is white!
24
+ m [colorize] :
25
+ red [string] : red -
26
+ green [string] : green -
27
+ blue [string] : blue
28
+ on_load [script] :
29
+ run color.w
30
+ run color.m
31
+
32
+ SEE ALSO
33
+ pastel
@@ -0,0 +1,26 @@
1
+ CONFIRM OBJECT TYPE
2
+ NAME: confirm
3
+ SHORTCUT: confirm
4
+
5
+ DESCRIPTION
6
+ CLI confirmation prompt.
7
+
8
+ CHILDREN
9
+ prompt - string - '> '
10
+ The confirmation prompt.
11
+ result - boolean - none
12
+ The result of the prompt.
13
+
14
+ MESSAGES
15
+ run - Prompt the user and then set the result.
16
+
17
+ EXAMPLE
18
+
19
+ confirm [confirm] :
20
+ prompt [string] : Are you sure?
21
+ result [boolean] :
22
+ on_load [script] :
23
+ run confirm
24
+ show 'Confirmed: ' + confirm.result
25
+
26
+ SEE ALSO
@@ -0,0 +1,44 @@
1
+ MENU OBJECT TYPE
2
+ NAME: menu
3
+ SHORTCUT: menu
4
+
5
+ DESCRIPTION
6
+ A CLI menu.
7
+ This can be used for the main loop of a CLI application.
8
+
9
+ CHILDREN
10
+ prompt - string - '> '
11
+ The shortcut may be used to select the menu item.
12
+ items - container
13
+ A textual description of the menu item action.
14
+ loop - boolean
15
+ The script that will be run if the menu item is selected.
16
+ default - script
17
+ Optional script element. Run this if no other option selected.
18
+
19
+ MESSAGES
20
+ run - Show the options and the the prompt.
21
+ Then run the script for the user's selection.
22
+ Optionally repeat as long as the loop child is true.
23
+
24
+ EXAMPLE
25
+
26
+ menu [menu] :
27
+ on_load [script] :
28
+ run menu
29
+ prompt [string] : >
30
+ loop [bool] : true
31
+ items [can] :
32
+ hw [mitem] :
33
+ shortcut [str] : hw
34
+ description [str] : Run Hello World
35
+ do [script] :
36
+ show 'Hello World!'
37
+ q [mitem] :
38
+ shortcut [str] : q
39
+ description [str] : Quit this menu
40
+ do [script] :
41
+ put false into menu.loop
42
+
43
+ SEE ALSO
44
+ menu_item
@@ -0,0 +1,26 @@
1
+ MENU_ITEM OBJECT TYPE
2
+ NAME: menu_item
3
+ SHORTCUT: mitem
4
+
5
+ DESCRIPTION
6
+ A CLI menu item. One element in a CLI menu.
7
+
8
+ CHILDREN
9
+ shortcut - string
10
+ The shortcut may be used to select the menu item.
11
+ The shortcut child is optional. If it is not provided,
12
+ the name of the menu item will be used instead.
13
+ description - string
14
+ A textual description of the menu item action.
15
+ The description child is optional. If it is not provided,
16
+ the value of the menu item will be used instead.
17
+ do - script
18
+ The script that will be run if the menu item is selected.
19
+
20
+ MESSAGES
21
+ None
22
+
23
+ EXAMPLE
24
+
25
+ SEE ALSO
26
+ menu
@@ -0,0 +1,43 @@
1
+ PASTEL OBJECT TYPE
2
+ NAME: pastel
3
+ SHORTCUT: pastel
4
+
5
+ DESCRIPTION
6
+ Show colorized text with the pastel gem.
7
+
8
+ CHILDREN
9
+ text - string
10
+ The text that will be colorized.
11
+ color - string
12
+ The colors. See pastel for options.
13
+
14
+ MESSAGES
15
+ show - Show the colorized text.
16
+
17
+ EXAMPLE
18
+
19
+ pastel [can] :
20
+ on_load [script] :
21
+ tell pastel.one to show
22
+ tell pastel.two to show
23
+ tell pastel.three to show
24
+ tell pastel.four to show
25
+ tell pastel.five to show
26
+ one [pastel] :
27
+ text [string] : Something New
28
+ color [string] : white on_green
29
+ two [pastel] :
30
+ text [string] : Star Wars
31
+ color [string] : red
32
+ three [pastel] :
33
+ text [string] : Many_Dimensions
34
+ color [string] : blue
35
+ four [pastel] :
36
+ text [string] : As An Arrow
37
+ color [string] : yellow on_blue
38
+ five [pastel] :
39
+ text [string] : Cranium
40
+ color [string] : white on_yellow
41
+
42
+ SEE ALSO
43
+ colorize
@@ -0,0 +1,27 @@
1
+ PROMPT OBJECT TYPE
2
+ NAME: prompt
3
+ SHORTCUT: ask
4
+
5
+ DESCRIPTION
6
+ CLI prompt for user input.
7
+
8
+ CHILDREN
9
+ prompt - string - '> '
10
+ The prompt displayed to the user.
11
+ result - string - none
12
+ The result with the user's input.
13
+
14
+ MESSAGES
15
+ run - Prompt the user and then set the result.
16
+ multiline - Show a multiline prompt.
17
+
18
+ EXAMPLE
19
+
20
+ ask [ask] :
21
+ prompt [string] : What is your name?
22
+ result [string] :
23
+ on_load [script] :
24
+ run ask
25
+ show 'Hello, ' + ask.result + '! Thanks for playing'
26
+
27
+ SEE ALSO
@@ -0,0 +1,34 @@
1
+ SELECT OBJECT TYPE
2
+ NAME: select
3
+ SHORTCUT: sel
4
+
5
+ DESCRIPTION
6
+ Prompt for user to select from a list of options.
7
+
8
+ CHILDREN
9
+ prompt - string - '> '
10
+ The prompt displayed to the user.
11
+ options - container
12
+ The list of options for the selection list.
13
+ The name of each option will be presented to the user, but
14
+ the value will be put in the result.
15
+ result - string - none
16
+ The result with the user's selection.
17
+
18
+ MESSAGES
19
+ run - Prompt the user for a selection and then set the result.
20
+
21
+ EXAMPLE
22
+
23
+ select [select] :
24
+ prompt [string] : What is your favorite color?
25
+ options [can] :
26
+ red : r
27
+ green : g
28
+ blue : b
29
+ result [string] :
30
+ on_load [script] :
31
+ run select
32
+ show select.result
33
+
34
+ SEE ALSO