gloo 0.5.4 → 0.7.2

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 (178) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/gloo/app/args.rb +48 -6
  5. data/lib/gloo/app/engine.rb +60 -38
  6. data/lib/gloo/app/help.rb +137 -16
  7. data/lib/gloo/app/info.rb +3 -1
  8. data/lib/gloo/app/log.rb +23 -0
  9. data/lib/gloo/app/mode.rb +2 -0
  10. data/lib/gloo/app/settings.rb +98 -47
  11. data/lib/gloo/convert/converter.rb +35 -0
  12. data/lib/gloo/convert/string_to_datetime.rb +1 -1
  13. data/lib/gloo/convert/string_to_decimal.rb +1 -1
  14. data/lib/gloo/convert/string_to_integer.rb +1 -1
  15. data/lib/gloo/core/dictionary.rb +99 -22
  16. data/lib/gloo/core/error.rb +19 -8
  17. data/lib/gloo/core/event_manager.rb +4 -0
  18. data/lib/gloo/core/factory.rb +11 -0
  19. data/lib/gloo/core/gloo_system.rb +1 -1
  20. data/lib/gloo/core/heap.rb +11 -3
  21. data/lib/gloo/core/here.rb +36 -0
  22. data/lib/gloo/core/it.rb +6 -0
  23. data/lib/gloo/core/literal.rb +5 -0
  24. data/lib/gloo/core/obj.rb +22 -0
  25. data/lib/gloo/core/op.rb +7 -0
  26. data/lib/gloo/core/parser.rb +6 -0
  27. data/lib/gloo/core/pn.rb +38 -0
  28. data/lib/gloo/core/tokens.rb +66 -22
  29. data/lib/gloo/core/verb.rb +12 -0
  30. data/lib/gloo/exec/action.rb +48 -0
  31. data/lib/gloo/exec/dispatch.rb +15 -5
  32. data/lib/gloo/exec/exec_env.rb +74 -0
  33. data/lib/gloo/exec/runner.rb +4 -2
  34. data/lib/gloo/{core → exec}/script.rb +21 -9
  35. data/lib/gloo/exec/stack.rb +78 -0
  36. data/lib/gloo/expr/expression.rb +26 -4
  37. data/lib/gloo/expr/l_boolean.rb +6 -0
  38. data/lib/gloo/expr/l_decimal.rb +5 -0
  39. data/lib/gloo/expr/l_integer.rb +7 -0
  40. data/lib/gloo/expr/l_string.rb +7 -0
  41. data/lib/gloo/expr/op_div.rb +2 -0
  42. data/lib/gloo/expr/op_minus.rb +2 -0
  43. data/lib/gloo/expr/op_mult.rb +2 -0
  44. data/lib/gloo/expr/op_plus.rb +2 -0
  45. data/lib/gloo/help/app/application.txt +22 -0
  46. data/lib/gloo/help/app/configuration.txt +7 -0
  47. data/lib/gloo/help/app/default_help.txt +14 -0
  48. data/lib/gloo/help/app/logging.txt +16 -0
  49. data/lib/gloo/help/core/color.txt +31 -0
  50. data/lib/gloo/help/core/error.txt +33 -0
  51. data/lib/gloo/help/core/events.txt +21 -0
  52. data/lib/gloo/help/core/gloo_system.txt +54 -0
  53. data/lib/gloo/help/core/here.txt +30 -0
  54. data/lib/gloo/help/core/it.txt +23 -0
  55. data/lib/gloo/help/core/ops.txt +16 -0
  56. data/lib/gloo/help/core/pathname.txt +29 -0
  57. data/lib/gloo/help/objs/basic/alias.txt +36 -0
  58. data/lib/gloo/help/objs/basic/boolean.txt +28 -0
  59. data/lib/gloo/help/objs/basic/container.txt +33 -0
  60. data/lib/gloo/help/objs/basic/decimal.txt +28 -0
  61. data/lib/gloo/help/objs/basic/integer.txt +27 -0
  62. data/lib/gloo/help/objs/basic/script.txt +29 -0
  63. data/lib/gloo/help/objs/basic/string.txt +28 -0
  64. data/lib/gloo/help/objs/basic/text.txt +27 -0
  65. data/lib/gloo/help/objs/basic/untyped.txt +22 -0
  66. data/lib/gloo/help/objs/cli/banner.txt +49 -0
  67. data/lib/gloo/help/objs/cli/bar.txt +34 -0
  68. data/lib/gloo/help/objs/cli/colorize.txt +33 -0
  69. data/lib/gloo/help/objs/cli/confirm.txt +26 -0
  70. data/lib/gloo/help/objs/cli/menu.txt +44 -0
  71. data/lib/gloo/help/objs/cli/menu_item.txt +26 -0
  72. data/lib/gloo/help/objs/cli/pastel.txt +43 -0
  73. data/lib/gloo/help/objs/cli/prompt.txt +27 -0
  74. data/lib/gloo/help/objs/cli/select.txt +34 -0
  75. data/lib/gloo/help/objs/ctrl/each.txt +48 -0
  76. data/lib/gloo/help/objs/ctrl/repeat.txt +38 -0
  77. data/lib/gloo/help/objs/data/markdown.txt +25 -0
  78. data/lib/gloo/help/objs/data/table.txt +46 -0
  79. data/lib/gloo/help/objs/dev/git_repo.txt +35 -0
  80. data/lib/gloo/help/objs/dt/date.txt +23 -0
  81. data/lib/gloo/help/objs/dt/datetime.txt +24 -0
  82. data/lib/gloo/help/objs/dt/time.txt +23 -0
  83. data/lib/gloo/help/objs/ror/erb.txt +37 -0
  84. data/lib/gloo/help/objs/ror/eval.txt +24 -0
  85. data/lib/gloo/help/objs/snd/play.txt +23 -0
  86. data/lib/gloo/help/objs/snd/say.txt +28 -0
  87. data/lib/gloo/help/objs/system/file.txt +41 -0
  88. data/lib/gloo/help/objs/system/system.txt +32 -0
  89. data/lib/gloo/help/objs/web/http_get.txt +35 -0
  90. data/lib/gloo/help/objs/web/http_post.txt +32 -0
  91. data/lib/gloo/help/objs/web/json.txt +34 -0
  92. data/lib/gloo/help/objs/web/slack.txt +33 -0
  93. data/lib/gloo/help/objs/web/teams.txt +30 -0
  94. data/lib/gloo/help/objs/web/uri.txt +37 -0
  95. data/lib/gloo/help/verbs/alert.txt +33 -0
  96. data/lib/gloo/help/verbs/beep.txt +25 -0
  97. data/lib/gloo/help/verbs/cls.txt +24 -0
  98. data/lib/gloo/help/verbs/context.txt +43 -0
  99. data/lib/gloo/help/verbs/create.txt +33 -0
  100. data/lib/gloo/help/verbs/execute.txt +27 -0
  101. data/lib/gloo/help/verbs/help.txt +34 -0
  102. data/lib/gloo/help/verbs/if.txt +37 -0
  103. data/lib/gloo/help/verbs/list.txt +34 -0
  104. data/lib/gloo/help/verbs/load.txt +38 -0
  105. data/lib/gloo/help/verbs/move.txt +42 -0
  106. data/lib/gloo/help/verbs/put.txt +38 -0
  107. data/lib/gloo/help/verbs/quit.txt +25 -0
  108. data/lib/gloo/help/verbs/run.txt +41 -0
  109. data/lib/gloo/help/verbs/save.txt +26 -0
  110. data/lib/gloo/help/verbs/show.txt +30 -0
  111. data/lib/gloo/help/verbs/tell.txt +34 -0
  112. data/lib/gloo/help/verbs/unless.txt +38 -0
  113. data/lib/gloo/help/verbs/version.txt +32 -0
  114. data/lib/gloo/help/verbs/wait.txt +29 -0
  115. data/lib/gloo/objs/basic/alias.rb +0 -33
  116. data/lib/gloo/objs/basic/boolean.rb +6 -27
  117. data/lib/gloo/objs/basic/container.rb +0 -33
  118. data/lib/gloo/objs/basic/decimal.rb +8 -28
  119. data/lib/gloo/objs/basic/integer.rb +5 -26
  120. data/lib/gloo/objs/basic/script.rb +1 -27
  121. data/lib/gloo/objs/basic/string.rb +6 -26
  122. data/lib/gloo/objs/basic/text.rb +0 -25
  123. data/lib/gloo/objs/basic/untyped.rb +0 -26
  124. data/lib/gloo/objs/cli/banner.rb +0 -29
  125. data/lib/gloo/objs/cli/bar.rb +0 -29
  126. data/lib/gloo/objs/cli/colorize.rb +4 -34
  127. data/lib/gloo/objs/cli/confirm.rb +6 -36
  128. data/lib/gloo/objs/cli/menu.rb +6 -36
  129. data/lib/gloo/objs/cli/menu_item.rb +0 -33
  130. data/lib/gloo/objs/cli/pastel.rb +4 -27
  131. data/lib/gloo/objs/cli/prompt.rb +4 -28
  132. data/lib/gloo/objs/cli/select.rb +4 -31
  133. data/lib/gloo/objs/ctrl/each.rb +33 -33
  134. data/lib/gloo/objs/ctrl/repeat.rb +8 -29
  135. data/lib/gloo/objs/data/markdown.rb +0 -25
  136. data/lib/gloo/objs/data/table.rb +4 -32
  137. data/lib/gloo/objs/dev/git.rb +12 -30
  138. data/lib/gloo/objs/dt/date.rb +3 -25
  139. data/lib/gloo/objs/dt/datetime.rb +4 -26
  140. data/lib/gloo/objs/dt/time.rb +3 -25
  141. data/lib/gloo/objs/ror/erb.rb +11 -45
  142. data/lib/gloo/objs/ror/eval.rb +11 -38
  143. data/lib/gloo/objs/snd/play.rb +2 -25
  144. data/lib/gloo/objs/snd/say.rb +9 -31
  145. data/lib/gloo/objs/system/file_handle.rb +0 -38
  146. data/lib/gloo/objs/system/system.rb +16 -46
  147. data/lib/gloo/objs/web/http_get.rb +57 -83
  148. data/lib/gloo/objs/web/http_post.rb +8 -31
  149. data/lib/gloo/objs/web/json.rb +11 -31
  150. data/lib/gloo/objs/web/slack.rb +7 -34
  151. data/lib/gloo/objs/web/teams.rb +13 -48
  152. data/lib/gloo/objs/web/uri.rb +0 -29
  153. data/lib/gloo/persist/file_loader.rb +8 -0
  154. data/lib/gloo/persist/file_saver.rb +6 -0
  155. data/lib/gloo/persist/file_storage.rb +2 -0
  156. data/lib/gloo/persist/line_splitter.rb +2 -0
  157. data/lib/gloo/persist/persist_man.rb +6 -0
  158. data/lib/gloo/verbs/alert.rb +30 -44
  159. data/lib/gloo/verbs/beep.rb +0 -30
  160. data/lib/gloo/verbs/cls.rb +0 -30
  161. data/lib/gloo/verbs/context.rb +9 -39
  162. data/lib/gloo/verbs/create.rb +17 -32
  163. data/lib/gloo/verbs/execute.rb +52 -0
  164. data/lib/gloo/verbs/help.rb +151 -115
  165. data/lib/gloo/verbs/if.rb +46 -44
  166. data/lib/gloo/verbs/list.rb +36 -54
  167. data/lib/gloo/verbs/load.rb +8 -37
  168. data/lib/gloo/verbs/move.rb +12 -51
  169. data/lib/gloo/verbs/put.rb +28 -52
  170. data/lib/gloo/verbs/quit.rb +0 -31
  171. data/lib/gloo/verbs/run.rb +23 -39
  172. data/lib/gloo/verbs/save.rb +0 -33
  173. data/lib/gloo/verbs/show.rb +6 -31
  174. data/lib/gloo/verbs/tell.rb +31 -31
  175. data/lib/gloo/verbs/unless.rb +47 -46
  176. data/lib/gloo/verbs/version.rb +0 -30
  177. data/lib/gloo/verbs/wait.rb +0 -31
  178. metadata +79 -3
@@ -0,0 +1,23 @@
1
+ IT
2
+
3
+ DESCRIPTION
4
+ 'It' is a special virtual object. 'It' contains the value of
5
+ the last expression or command run. Not all commands result in
6
+ a change to the value of it.
7
+
8
+ EXAMPLE
9
+ Get the value of an expression and store it somewhere for later use:
10
+
11
+ #
12
+ # Example of usage of 'it'.
13
+ #
14
+ it_example [can] :
15
+ result [int] :
16
+ on_load [script] :
17
+ show 3 + 4
18
+ put it into ^.result
19
+ show ^.result
20
+
21
+ Running this script will show 7 twice. The first time will be the
22
+ result of the addition. The second time will be showing the
23
+ result object.
@@ -0,0 +1,16 @@
1
+ OPERATORS
2
+
3
+ DESCRIPTION
4
+ These are the gloo operators:
5
+
6
+ + addition
7
+ - subtraction
8
+ * multiplication
9
+ / division
10
+
11
+ EXAMPLE
12
+ Here are some examples of expression usage:
13
+
14
+ > show 2 + 5
15
+ > put 12 / 3 into x
16
+ > show 23 * 3 - 6
@@ -0,0 +1,29 @@
1
+ PATHNAME
2
+
3
+ DESCRIPTION
4
+ All gloo object data and scripts are stored in a heap of objects or
5
+ just "the heap". The heap is hierarchical, with some objects having
6
+ children objects. To reference an object, we use a "pathname". The
7
+ pathname starts with the root level object then has a period, ".",
8
+ then the child object name, and so forth. "a.b.c" refers to the "c"
9
+ object in the "b" container, which is in the "a" container.
10
+
11
+ ROOT
12
+ The word "root" is not needed when referring to objects. In some
13
+ special cases, "root" can be used to point to the first level of
14
+ the object heap. One such use would be with the "context" verb.
15
+
16
+ EXAMPLE
17
+ Here is an example of objects and a pathname reference to an
18
+ object within the hierarchy:
19
+
20
+ #
21
+ # Hierarchical containers.
22
+ #
23
+ a [can] :
24
+ b [can] :
25
+ c [string] : Hello World
26
+ on_load [script] : show a.b.c
27
+
28
+ SEE ALSO
29
+ context
@@ -0,0 +1,36 @@
1
+ ALIAS OBJECT TYPE
2
+ NAME: alias
3
+ SHORTCUT: ln
4
+
5
+ DESCRIPTION
6
+ A pointer to another object.
7
+ Normal path-name references will refere to the aliased object.
8
+ To refer to the alias itself, add an * at the end of the path-name.
9
+ This is neeed, for example, to set the value of the alias.
10
+ The value of the alias is merely the path-name of the
11
+ referenced object.
12
+
13
+ CHILDREN
14
+ None
15
+
16
+ MESSAGES
17
+ The alias will reflect the mesages of the object to which
18
+ it points.
19
+ The alias itself can receive the following message:
20
+ resolve - Check to see if the object referenced exists.
21
+ Sets it to true or false.
22
+
23
+ EXAMPLE
24
+
25
+ a [can] :
26
+ s [string] : a string
27
+ i [integer] : 13
28
+ ln [alias] : a.s
29
+ on_load [script] :
30
+ show a.ln
31
+ show a.ln*
32
+ put 'a.i' into a.ln*
33
+ put 7 into a.ln
34
+ show a.ln
35
+
36
+ SEE ALSO
@@ -0,0 +1,28 @@
1
+ BOOLEAN OBJECT TYPE
2
+ NAME: boolean
3
+ SHORTCUT: bool
4
+
5
+ DESCRIPTION
6
+ A boolean value.
7
+ Value will be either true or false.
8
+
9
+ CHILDREN
10
+ None
11
+
12
+ MESSAGES
13
+ not - Set the boolean to the opposite of what it is now.
14
+ true - Set the boolean to true.
15
+ false - Set the boolean to false.
16
+
17
+ EXAMPLE
18
+
19
+ b [can] :
20
+ flag [boolean] : true
21
+ on_load [script] :
22
+ show b.flag
23
+ put false into b.flag
24
+ show b.flag
25
+ tell b.flag to not
26
+ show b.flag
27
+
28
+ SEE ALSO
@@ -0,0 +1,33 @@
1
+ CONTAINER OBJECT TYPE
2
+ NAME: container
3
+ SHORTCUT: can
4
+
5
+ DESCRIPTION
6
+ A container of other objects.
7
+ A container is similar to a folder in a file system.
8
+ It can contain any number of objects including other containers.
9
+ The container structure provides direct access to any object
10
+ within it through the object.object.object path-name structure.
11
+
12
+ CHILDREN
13
+ None by default. But any container can have any number of
14
+ objects added to it.
15
+
16
+ MESSAGES
17
+ count - Count the number of children objects in the container.
18
+ The result is put in <it>.
19
+ delete_children - Delete all children objects from the container.
20
+ show_key_value_tbl - Show a table with key (name) and values
21
+ for all children in the container.
22
+
23
+ EXAMPLE
24
+
25
+ can [can] :
26
+ data [can] :
27
+ 1 : one
28
+ 2 : two
29
+ 3 : three
30
+ on_load [script] :
31
+ tell can.data to show_key_value_table
32
+
33
+ SEE ALSO
@@ -0,0 +1,28 @@
1
+ DECIMAL OBJECT TYPE
2
+ NAME: decimal
3
+ SHORTCUT: num
4
+
5
+ DESCRIPTION
6
+ A decimal (numeric) value.
7
+
8
+ CHILDREN
9
+ None
10
+
11
+ MESSAGES
12
+ round - Round to the nearest whole value.
13
+ If an optional parameter is included, round to the
14
+ precision specified.
15
+
16
+ EXAMPLE
17
+
18
+ d [can] :
19
+ x [decimal] : 100
20
+ on_load [script] :
21
+ show d.x
22
+ put d.x / 3 into d.x
23
+ show d.x
24
+ tell d.x to round (1)
25
+ show d.x
26
+
27
+ SEE ALSO
28
+ integer
@@ -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