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
@@ -70,16 +70,20 @@ module Gloo
70
70
  # Children
71
71
  # ---------------------------------------------------------------------
72
72
 
73
+ #
73
74
  # Does this object have children to add when an object
74
75
  # is created in interactive mode?
75
76
  # This does not apply during obj load, etc.
77
+ #
76
78
  def add_children_on_create?
77
79
  return true
78
80
  end
79
81
 
82
+ #
80
83
  # Add children to this object.
81
84
  # This is used by containers to add children needed
82
85
  # for default configurations.
86
+ #
83
87
  def add_default_children
84
88
  fac = $engine.factory
85
89
  fac.create_can HEADERS, self
@@ -131,38 +135,6 @@ module Gloo
131
135
  puts "#{rendered}\n\n"
132
136
  end
133
137
 
134
- # ---------------------------------------------------------------------
135
- # Help
136
- # ---------------------------------------------------------------------
137
-
138
- #
139
- # Get help for this object type.
140
- #
141
- def self.help
142
- return <<~TEXT
143
- TABLE OBJECT TYPE
144
- NAME: table
145
- SHORTCUT: tbl
146
-
147
- DESCRIPTION
148
- A data table.
149
-
150
- CHILDREN
151
- headers - container
152
- A list of headers.
153
- The name of the header object needs to be the same as the
154
- name of the object in the data container.
155
- The value of the header is what will be displayed.
156
- data - container
157
- The table's data.
158
- The data container will have one or more containers, each
159
- of which represents one row of data.
160
-
161
- MESSAGES
162
- show - Show the contents of the table in the CLI.
163
- TEXT
164
- end
165
-
166
138
  end
167
139
  end
168
140
  end
@@ -43,7 +43,9 @@ module Gloo
43
43
  return super + %w[validate check_changes get_changes commit get_branch]
44
44
  end
45
45
 
46
+ #
46
47
  # Get the current working branch.
48
+ #
47
49
  def msg_get_branch
48
50
  branch = ''
49
51
  path = path_value
@@ -55,7 +57,9 @@ module Gloo
55
57
  $engine.heap.it.set_to branch
56
58
  end
57
59
 
60
+ #
58
61
  # Commit pending changes.
62
+ #
59
63
  def msg_commit
60
64
  msg = 'Commit'
61
65
  path = path_value
@@ -74,7 +78,9 @@ module Gloo
74
78
  $engine.heap.it.set_to msg
75
79
  end
76
80
 
81
+ #
77
82
  # Get the pending changes.
83
+ #
78
84
  def msg_get_changes
79
85
  path = path_value
80
86
  result = `cd #{path}; git status -s` if path_is_dir?( path )
@@ -82,12 +88,16 @@ module Gloo
82
88
  $engine.heap.it.set_to result
83
89
  end
84
90
 
91
+ #
85
92
  # Is the given path non nil and is it a directory?
93
+ #
86
94
  def path_is_dir?( path )
87
95
  return path && File.directory?( path )
88
96
  end
89
97
 
98
+ #
90
99
  # Check to see if the repo has changes.
100
+ #
91
101
  def msg_check_changes
92
102
  result = false
93
103
  path = path_value
@@ -99,7 +109,9 @@ module Gloo
99
109
  $engine.heap.it.set_to result
100
110
  end
101
111
 
112
+ #
102
113
  # Check to make sure this is a valide git repo.
114
+ #
103
115
  def msg_validate
104
116
  result = false
105
117
  path = path_value
@@ -111,36 +123,6 @@ module Gloo
111
123
  $engine.heap.it.set_to result
112
124
  end
113
125
 
114
- # ---------------------------------------------------------------------
115
- # Help
116
- # ---------------------------------------------------------------------
117
-
118
- #
119
- # Get help for this object type.
120
- #
121
- def self.help
122
- return <<~TEXT
123
- GIT OBJECT TYPE
124
- NAME: git_repo
125
- SHORTCUT: git
126
-
127
- DESCRIPTION
128
- Reference to a git repository in the file system.
129
- The value of the git_repo objectd is a string.
130
- There are no children needed.
131
-
132
- CHILDREN
133
- None
134
-
135
- MESSAGES
136
- validate - Validate that this is a git repo.
137
- check_changes - Check to see if there are any pending changes.
138
- get_changes - Get the list of pending changes.
139
- commit - Commit changes.
140
- get_branch - Get the current branch.
141
- TEXT
142
- end
143
-
144
126
  end
145
127
  end
146
128
  end
@@ -36,37 +36,15 @@ module Gloo
36
36
  return super + %w[now]
37
37
  end
38
38
 
39
- # Get the current working branch.
39
+ #
40
+ # Set to the current date.
41
+ #
40
42
  def msg_now
41
43
  t = DateTime.now.strftime( '%Y.%m.%d' )
42
44
  self.value = t
43
45
  $engine.heap.it.set_to t
44
46
  end
45
47
 
46
- # ---------------------------------------------------------------------
47
- # Help
48
- # ---------------------------------------------------------------------
49
-
50
- #
51
- # Get help for this object type.
52
- #
53
- def self.help
54
- return <<~TEXT
55
- DATE OBJECT TYPE
56
- NAME: date
57
- SHORTCUT: date
58
-
59
- DESCRIPTION
60
- A reference to a date, but without time.
61
-
62
- CHILDREN
63
- None
64
-
65
- MESSAGES
66
- now - Set to the current system date.
67
- TEXT
68
- end
69
-
70
48
  end
71
49
  end
72
50
  end
@@ -30,7 +30,7 @@ module Gloo
30
30
  #
31
31
  def set_value( new_value )
32
32
  unless new_value.is_a? DateTime
33
- self.value = $engine.convert( new_value, 'DateTime', nil )
33
+ self.value = $engine.converter.convert( new_value, 'DateTime', nil )
34
34
  return
35
35
  end
36
36
 
@@ -48,37 +48,15 @@ module Gloo
48
48
  return super + %w[now]
49
49
  end
50
50
 
51
- # Get the current working branch.
51
+ #
52
+ # Set to the current date and time.
53
+ #
52
54
  def msg_now
53
55
  t = DateTime.now.strftime( '%Y.%m.%d %I:%M:%S %P' )
54
56
  self.value = t
55
57
  $engine.heap.it.set_to t
56
58
  end
57
59
 
58
- # ---------------------------------------------------------------------
59
- # Help
60
- # ---------------------------------------------------------------------
61
-
62
- #
63
- # Get help for this object type.
64
- #
65
- def self.help
66
- return <<~TEXT
67
- DATETIME OBJECT TYPE
68
- NAME: datetime
69
- SHORTCUT: dt
70
-
71
- DESCRIPTION
72
- A reference to a date and time.
73
-
74
- CHILDREN
75
- None
76
-
77
- MESSAGES
78
- now - Set to the current system date and time.
79
- TEXT
80
- end
81
-
82
60
  end
83
61
  end
84
62
  end
@@ -36,37 +36,15 @@ module Gloo
36
36
  return super + %w[now]
37
37
  end
38
38
 
39
- # Get the current working branch.
39
+ #
40
+ # Set to the current time.
41
+ #
40
42
  def msg_now
41
43
  t = DateTime.now.strftime( '%I:%M:%S %P' )
42
44
  self.value = t
43
45
  $engine.heap.it.set_to t
44
46
  end
45
47
 
46
- # ---------------------------------------------------------------------
47
- # Help
48
- # ---------------------------------------------------------------------
49
-
50
- #
51
- # Get help for this object type.
52
- #
53
- def self.help
54
- return <<~TEXT
55
- TIME OBJECT TYPE
56
- NAME: time
57
- SHORTCUT: time
58
-
59
- DESCRIPTION
60
- A reference to a time, but without a date.
61
-
62
- CHILDREN
63
- None
64
-
65
- MESSAGES
66
- now - Set to the current system time.
67
- TEXT
68
- end
69
-
70
48
  end
71
49
  end
72
50
  end
@@ -40,7 +40,7 @@ module Gloo
40
40
  end
41
41
 
42
42
  #
43
- # Set the result of the system call.
43
+ # Set the result of the ERB template conversion.
44
44
  #
45
45
  def set_result( data )
46
46
  r = find_child RESULT
@@ -68,30 +68,25 @@ module Gloo
68
68
  # Children
69
69
  # ---------------------------------------------------------------------
70
70
 
71
+ #
71
72
  # Does this object have children to add when an object
72
73
  # is created in interactive mode?
73
74
  # This does not apply during obj load, etc.
75
+ #
74
76
  def add_children_on_create?
75
77
  return true
76
78
  end
77
79
 
80
+ #
78
81
  # Add children to this object.
79
82
  # This is used by containers to add children needed
80
83
  # for default configurations.
84
+ #
81
85
  def add_default_children
82
86
  fac = $engine.factory
83
- fac.create( { :name => 'template',
84
- :type => 'text',
85
- :value => '',
86
- :parent => self } )
87
- fac.create( { :name => 'params',
88
- :type => 'container',
89
- :value => nil,
90
- :parent => self } )
91
- fac.create( { :name => 'result',
92
- :type => 'text',
93
- :value => nil,
94
- :parent => self } )
87
+ fac.create_text TEMPLATE, '', self
88
+ fac.create_can PARAMS, self
89
+ fac.create_text RESULT, '', self
95
90
  end
96
91
 
97
92
  # ---------------------------------------------------------------------
@@ -105,7 +100,9 @@ module Gloo
105
100
  return super + [ 'run' ]
106
101
  end
107
102
 
108
- # Run the system command.
103
+ #
104
+ # Run the ERB template conversion.
105
+ #
109
106
  def msg_run
110
107
  tmpl = template_value
111
108
  return unless tmpl
@@ -114,37 +111,6 @@ module Gloo
114
111
  set_result render.result_with_hash( param_hash )
115
112
  end
116
113
 
117
- # ---------------------------------------------------------------------
118
- # Help
119
- # ---------------------------------------------------------------------
120
-
121
- #
122
- # Get help for this object type.
123
- #
124
- def self.help
125
- return <<~TEXT
126
- ERB OBJECT TYPE
127
- NAME: erb
128
- SHORTCUT: erb
129
-
130
- DESCRIPTION
131
- Use the ERB templating system to generate content.
132
-
133
- CHILDREN
134
- template - text
135
- The template that will be used the the ERB object is run.
136
- params - container
137
- The collection of children values that will be used
138
- when the template object is rendered.
139
- result - text
140
- The result of the template rendering.
141
-
142
- MESSAGES
143
- run - Render the result based on the template and the
144
- parameter values.
145
- TEXT
146
- end
147
-
148
114
  end
149
115
  end
150
116
  end
@@ -11,6 +11,7 @@ module Gloo
11
11
  KEYWORD = 'eval'.freeze
12
12
  KEYWORD_SHORT = 'ruby'.freeze
13
13
  CMD = 'command'.freeze
14
+ DEFAULT_CMD = '1+2'.freeze
14
15
  RESULT = 'result'.freeze
15
16
 
16
17
  #
@@ -52,26 +53,24 @@ module Gloo
52
53
  # Children
53
54
  # ---------------------------------------------------------------------
54
55
 
56
+ #
55
57
  # Does this object have children to add when an object
56
58
  # is created in interactive mode?
57
59
  # This does not apply during obj load, etc.
60
+ #
58
61
  def add_children_on_create?
59
62
  return true
60
63
  end
61
64
 
65
+ #
62
66
  # Add children to this object.
63
67
  # This is used by containers to add children needed
64
68
  # for default configurations.
69
+ #
65
70
  def add_default_children
66
71
  fac = $engine.factory
67
- fac.create( { :name => 'command',
68
- :type => 'string',
69
- :value => '1+2',
70
- :parent => self } )
71
- fac.create( { :name => 'result',
72
- :type => 'string',
73
- :value => nil,
74
- :parent => self } )
72
+ fac.create_string CMD, DEFAULT_CMD, self
73
+ fac.create_string RESULT, nil, self
75
74
  end
76
75
 
77
76
  # ---------------------------------------------------------------------
@@ -85,7 +84,9 @@ module Gloo
85
84
  return super + [ 'run' ]
86
85
  end
87
86
 
88
- # Run the system command.
87
+ #
88
+ # Run the command and evaluate the expression.
89
+ #
89
90
  def msg_run
90
91
  cmd = cmd_value
91
92
  return unless cmd
@@ -97,38 +98,10 @@ module Gloo
97
98
  set_result result
98
99
  $engine.heap.it.set_to result
99
100
  rescue => e
100
- $log.error e.message
101
- $engine.heap.error.set_to e.message
101
+ $engine.err e.message
102
102
  end
103
103
  end
104
104
 
105
- # ---------------------------------------------------------------------
106
- # Help
107
- # ---------------------------------------------------------------------
108
-
109
- #
110
- # Get help for this object type.
111
- #
112
- def self.help
113
- return <<~TEXT
114
- EVAL OBJECT TYPE
115
- NAME: eval
116
- SHORTCUT: ruby
117
-
118
- DESCRIPTION
119
- Execute a ruby expression.
120
-
121
- CHILDREN
122
- command - string
123
- The ruby expression or command that will be run.
124
- result - string
125
- The result of the command or expression after it is run.
126
-
127
- MESSAGES
128
- run - Execute the ruby command and update the result.
129
- TEXT
130
- end
131
-
132
105
  end
133
106
  end
134
107
  end