gloo-lang 0.9.7 → 0.9.10

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -1
  3. data/gloo-lang.gemspec +1 -1
  4. data/lib/VERSION +1 -1
  5. data/lib/gloo_lang/app/args.rb +3 -2
  6. data/lib/gloo_lang/app/engine.rb +25 -26
  7. data/lib/gloo_lang/app/engine_context.rb +25 -0
  8. data/lib/gloo_lang/app/help.rb +10 -9
  9. data/lib/gloo_lang/app/log.rb +5 -3
  10. data/lib/gloo_lang/app/settings.rb +30 -37
  11. data/lib/gloo_lang/convert/converter.rb +9 -2
  12. data/lib/gloo_lang/core/baseo.rb +2 -1
  13. data/lib/gloo_lang/core/dictionary.rb +16 -6
  14. data/lib/gloo_lang/core/event_manager.rb +9 -8
  15. data/lib/gloo_lang/core/factory.rb +11 -10
  16. data/lib/gloo_lang/core/gloo_system.rb +9 -8
  17. data/lib/gloo_lang/core/heap.rb +5 -4
  18. data/lib/gloo_lang/core/here.rb +2 -2
  19. data/lib/gloo_lang/core/obj.rb +9 -8
  20. data/lib/gloo_lang/core/obj_finder.rb +3 -3
  21. data/lib/gloo_lang/core/parser.rb +6 -5
  22. data/lib/gloo_lang/core/pn.rb +20 -16
  23. data/lib/gloo_lang/core/verb.rb +2 -1
  24. data/lib/gloo_lang/exec/dispatch.rb +8 -8
  25. data/lib/gloo_lang/exec/exec_env.rb +7 -6
  26. data/lib/gloo_lang/exec/runner.rb +10 -10
  27. data/lib/gloo_lang/exec/script.rb +6 -5
  28. data/lib/gloo_lang/exec/stack.rb +8 -7
  29. data/lib/gloo_lang/expr/expression.rb +3 -2
  30. data/lib/gloo_lang/objs/basic/alias.rb +4 -4
  31. data/lib/gloo_lang/objs/basic/boolean.rb +3 -3
  32. data/lib/gloo_lang/objs/basic/container.rb +2 -2
  33. data/lib/gloo_lang/objs/basic/decimal.rb +3 -3
  34. data/lib/gloo_lang/objs/basic/integer.rb +3 -3
  35. data/lib/gloo_lang/objs/basic/script.rb +1 -1
  36. data/lib/gloo_lang/objs/basic/string.rb +3 -3
  37. data/lib/gloo_lang/objs/basic/text.rb +2 -2
  38. data/lib/gloo_lang/objs/ctrl/each.rb +3 -3
  39. data/lib/gloo_lang/objs/ctrl/repeat.rb +2 -2
  40. data/lib/gloo_lang/objs/data/markdown.rb +2 -2
  41. data/lib/gloo_lang/objs/data/query.rb +4 -4
  42. data/lib/gloo_lang/objs/data/table.rb +3 -3
  43. data/lib/gloo_lang/objs/dt/date.rb +1 -1
  44. data/lib/gloo_lang/objs/dt/datetime.rb +2 -2
  45. data/lib/gloo_lang/objs/dt/time.rb +1 -1
  46. data/lib/gloo_lang/objs/ror/erb.rb +2 -2
  47. data/lib/gloo_lang/objs/ror/eval.rb +3 -3
  48. data/lib/gloo_lang/objs/web/http_get.rb +3 -3
  49. data/lib/gloo_lang/objs/web/http_post.rb +8 -8
  50. data/lib/gloo_lang/objs/web/json.rb +5 -5
  51. data/lib/gloo_lang/objs/web/slack.rb +1 -1
  52. data/lib/gloo_lang/objs/web/teams.rb +1 -1
  53. data/lib/gloo_lang/objs/web/uri.rb +6 -6
  54. data/lib/gloo_lang/persist/file_loader.rb +6 -5
  55. data/lib/gloo_lang/persist/file_saver.rb +2 -1
  56. data/lib/gloo_lang/persist/file_storage.rb +6 -5
  57. data/lib/gloo_lang/persist/persist_man.rb +9 -8
  58. data/lib/gloo_lang/utils/stats.rb +5 -4
  59. data/lib/gloo_lang/verbs/context.rb +4 -4
  60. data/lib/gloo_lang/verbs/create.rb +3 -3
  61. data/lib/gloo_lang/verbs/execute.rb +4 -4
  62. data/lib/gloo_lang/verbs/help.rb +23 -23
  63. data/lib/gloo_lang/verbs/if.rb +3 -3
  64. data/lib/gloo_lang/verbs/list.rb +7 -7
  65. data/lib/gloo_lang/verbs/load.rb +3 -3
  66. data/lib/gloo_lang/verbs/move.rb +6 -6
  67. data/lib/gloo_lang/verbs/put.rb +6 -6
  68. data/lib/gloo_lang/verbs/quit.rb +1 -1
  69. data/lib/gloo_lang/verbs/run.rb +5 -5
  70. data/lib/gloo_lang/verbs/save.rb +1 -1
  71. data/lib/gloo_lang/verbs/show.rb +5 -5
  72. data/lib/gloo_lang/verbs/tell.rb +5 -4
  73. data/lib/gloo_lang/verbs/unless.rb +3 -3
  74. data/lib/gloo_lang/verbs/version.rb +1 -1
  75. data/lib/gloo_lang/verbs/wait.rb +1 -1
  76. metadata +23 -2
@@ -18,7 +18,8 @@ module GlooLang
18
18
  attr_reader :pn
19
19
 
20
20
  # Set up the object.
21
- def initialize( pn )
21
+ def initialize( engine, pn )
22
+ @engine = engine
22
23
  @pn = pn
23
24
  end
24
25
 
@@ -137,7 +138,7 @@ module GlooLang
137
138
  o = "msg_#{msg}"
138
139
  return self.public_send( o ) if self.respond_to? o
139
140
 
140
- $log.error "Message #{msg} not implemented"
141
+ @engine.log.error "Message #{msg} not implemented"
141
142
  return false
142
143
  end
143
144
 
@@ -163,22 +164,22 @@ module GlooLang
163
164
 
164
165
  # Get the Gloo home directory
165
166
  def msg_gloo_home
166
- return $settings.user_root
167
+ return @engine.settings.user_root
167
168
  end
168
169
 
169
170
  # Get the Gloo configuration directory
170
171
  def msg_gloo_config
171
- return $settings.config_path
172
+ return @engine.settings.config_path
172
173
  end
173
174
 
174
175
  # Get the Gloo projects directory
175
176
  def msg_gloo_projects
176
- return $settings.project_path
177
+ return @engine.settings.project_path
177
178
  end
178
179
 
179
180
  # Get the Gloo log directory
180
181
  def msg_gloo_log
181
- return $settings.log_path
182
+ return @engine.settings.log_path
182
183
  end
183
184
 
184
185
  # ---------------------------------------------------------------------
@@ -196,12 +197,12 @@ module GlooLang
196
197
 
197
198
  # Get the number of lines on screen.
198
199
  def msg_screen_lines
199
- return GlooLang::App::Settings.lines
200
+ return GlooLang::App::Settings.lines( @engine )
200
201
  end
201
202
 
202
203
  # Get the number of columns on screen.
203
204
  def msg_screen_cols
204
- return GlooLang::App::Settings.cols
205
+ return GlooLang::App::Settings.cols( @engine )
205
206
  end
206
207
 
207
208
  # ---------------------------------------------------------------------
@@ -19,13 +19,14 @@ module GlooLang
19
19
  #
20
20
  # Set up the object heap.
21
21
  #
22
- def initialize
23
- $log.debug 'object heap intialized...'
22
+ def initialize( engine )
23
+ @engine = engine
24
+ @engine.log.debug 'object heap intialized...'
24
25
 
25
- @root = GlooLang::Objs::Container.new
26
+ @root = GlooLang::Objs::Container.new( @engine)
26
27
  @root.name = 'root'
27
28
 
28
- @context = Pn.root
29
+ @context = Pn.root engine
29
30
  @it = It.new
30
31
  @error = Error.new
31
32
  end
@@ -21,8 +21,8 @@ module GlooLang
21
21
  #
22
22
  # Expand here reference if present.
23
23
  #
24
- def self.expand_here( pn )
25
- target = $engine.exec_env.here_obj
24
+ def self.expand_here( engine, pn )
25
+ target = engine.exec_env.here_obj
26
26
 
27
27
  here = pn.elements.first
28
28
  remainder = pn.elements[ 1..-1 ].join( '.' )
@@ -15,7 +15,8 @@ module GlooLang
15
15
  #
16
16
  # Set up the object.
17
17
  #
18
- def initialize
18
+ def initialize( engine )
19
+ @engine = engine
19
20
  @value = ''
20
21
  @children = []
21
22
  @parent = nil
@@ -152,7 +153,7 @@ module GlooLang
152
153
  :type => type,
153
154
  :value => nil,
154
155
  :parent => self }
155
- return $engine.factory.create params
156
+ return @engine.factory.create params
156
157
  end
157
158
 
158
159
  #
@@ -193,7 +194,7 @@ module GlooLang
193
194
  end
194
195
 
195
196
  if self.type_display == GlooLang::Objs::Alias.typename
196
- ln = GlooLang::Core::Pn.new( self.value )
197
+ ln = GlooLang::Core::Pn.new( @engine, self.value )
197
198
  redirect = ln.resolve
198
199
  return redirect.find_child( name )
199
200
  end
@@ -256,7 +257,7 @@ module GlooLang
256
257
  @params = params
257
258
  return self.dispatch msg if self.can_receive_message? msg
258
259
 
259
- $log.error "Object #{self.name} cannot receive message #{msg}"
260
+ @engine.log.error "Object #{self.name} cannot receive message #{msg}"
260
261
  return false
261
262
  end
262
263
 
@@ -269,7 +270,7 @@ module GlooLang
269
270
  self.public_send( o )
270
271
  return true
271
272
  else
272
- $log.error "Message #{msg} not implemented"
273
+ @engine.log.error "Message #{msg} not implemented"
273
274
  return false
274
275
  end
275
276
  end
@@ -279,12 +280,12 @@ module GlooLang
279
280
  #
280
281
  def msg_unload
281
282
  if self.root?
282
- $log.error 'Cannot unload the root object.'
283
+ @engine.log.error 'Cannot unload the root object.'
283
284
  return
284
285
  end
285
286
 
286
- $engine.event_manager.on_unload self
287
- $engine.heap.unload self
287
+ @engine.event_manager.on_unload self
288
+ @engine.heap.unload self
288
289
  end
289
290
 
290
291
  # ---------------------------------------------------------------------
@@ -13,13 +13,13 @@ module GlooLang
13
13
  # the given name.
14
14
  # If the container isn't provided, root will be used.
15
15
  #
16
- def self.by_name( name, container = nil )
17
- container = $engine.heap.root if container.nil?
16
+ def self.by_name( engine, name, container = nil )
17
+ container = engine.heap.root if container.nil?
18
18
  arr = []
19
19
 
20
20
  container.children.each do |o|
21
21
  arr << o if o.name == name
22
- arr += by_name( name, o ) if o.child_count.positive?
22
+ arr += by_name( engine, name, o ) if o.child_count.positive?
23
23
  end
24
24
 
25
25
  return arr
@@ -12,8 +12,9 @@ module GlooLang
12
12
  #
13
13
  # Set up the parser.
14
14
  #
15
- def initialize
16
- $log.debug 'parser intialized...'
15
+ def initialize( engine )
16
+ @engine = engine
17
+ @engine.log.debug 'parser intialized...'
17
18
  end
18
19
 
19
20
  #
@@ -25,9 +26,9 @@ module GlooLang
25
26
  tokens = GlooLang::Core::Tokens.new( cmd )
26
27
  dic = GlooLang::Core::Dictionary.instance
27
28
  verb = dic.find_verb( tokens.verb )
28
- return verb.new( tokens, params ) if verb
29
+ return verb.new( @engine, tokens, params ) if verb
29
30
 
30
- $log.error "Verb '#{tokens.verb}' was not found."
31
+ @engine.log.error "Verb '#{tokens.verb}' was not found."
31
32
  return nil
32
33
  end
33
34
 
@@ -51,7 +52,7 @@ module GlooLang
51
52
  #
52
53
  def run( cmd )
53
54
  v = parse_immediate( cmd )
54
- GlooLang::Exec::Runner.go( v ) if v
55
+ GlooLang::Exec::Runner.go( @engine, v ) if v
55
56
  end
56
57
 
57
58
  end
@@ -19,29 +19,30 @@ module GlooLang
19
19
  # Set up the object given a source string,
20
20
  # ie: the full path and name.
21
21
  #
22
- def initialize( src )
22
+ def initialize( engine, src )
23
+ @engine = engine
23
24
  set_to src
24
25
  end
25
26
 
26
27
  #
27
28
  # Reference to the root object path.
28
29
  #
29
- def self.root
30
- return Pn.new( ROOT )
30
+ def self.root( engine )
31
+ return Pn.new( engine, ROOT )
31
32
  end
32
33
 
33
34
  #
34
35
  # Reference to it.
35
36
  #
36
- def self.it
37
- return Pn.new( IT )
37
+ def self.it( engine )
38
+ return Pn.new( engine, IT )
38
39
  end
39
40
 
40
41
  #
41
42
  # Reference to the error message.
42
43
  #
43
- def self.error
44
- return Pn.new( ERROR )
44
+ def self.error( engine )
45
+ return Pn.new( engine, ERROR )
45
46
  end
46
47
 
47
48
  #
@@ -127,13 +128,13 @@ module GlooLang
127
128
  # Get the parent that contains the object referenced.
128
129
  #
129
130
  def get_parent
130
- o = $engine.heap.root
131
+ o = @engine.heap.root
131
132
 
132
133
  if self.includes_path?
133
134
  @elements[ 0..-2 ].each do |e|
134
135
  o = o.find_child( e )
135
136
  if o.nil?
136
- $log.error "Object '#{e}' was not found."
137
+ @engine.log.error "Object '#{e}' was not found."
137
138
  return nil
138
139
  end
139
140
  end
@@ -169,18 +170,21 @@ module GlooLang
169
170
  # Find the object referenced or return nil if it is not found.
170
171
  #
171
172
  def resolve
172
- return $engine.heap.root if self.root?
173
- return $engine.heap.it if self.it?
174
- return $engine.heap.error if self.error?
175
- return GlooLang::Core::GlooSystem.new( self ) if self.gloo_sys?
176
-
177
- Here.expand_here( self ) if Here.includes_here_ref?( @elements )
173
+ return @engine.heap.root if self.root?
174
+ return @engine.heap.it if self.it?
175
+ return @engine.heap.error if self.error?
176
+ return GlooLang::Core::GlooSystem.new(
177
+ @engine, self ) if self.gloo_sys?
178
+
179
+ if Here.includes_here_ref?( @elements )
180
+ Here.expand_here( @engine, self )
181
+ end
178
182
 
179
183
  parent = self.get_parent
180
184
  return nil unless parent
181
185
 
182
186
  obj = parent.find_child( self.name )
183
- return GlooLang::Objs::Alias.resolve_alias( obj, self.src )
187
+ return GlooLang::Objs::Alias.resolve_alias( @engine, obj, self.src )
184
188
  end
185
189
 
186
190
  end
@@ -16,7 +16,8 @@ module GlooLang
16
16
  #
17
17
  # Set up the verb.
18
18
  #
19
- def initialize( tokens, params = [] )
19
+ def initialize( engine, tokens, params = [] )
20
+ @engine = engine
20
21
  @tokens = tokens
21
22
  @params = params
22
23
  end
@@ -15,24 +15,24 @@ module GlooLang
15
15
  #
16
16
  # Dispatch the given message to the given object.
17
17
  #
18
- def self.message( msg, to_obj, params = nil )
19
- $log.debug "Dispatch message #{msg} to #{to_obj.name}"
18
+ def self.message( engine, msg, to_obj, params = nil )
19
+ engine.log.debug "Dispatch message #{msg} to #{to_obj.name}"
20
20
  a = GlooLang::Exec::Action.new msg, to_obj, params
21
- GlooLang::Exec::Dispatch.action a
21
+ GlooLang::Exec::Dispatch.action( engine, a )
22
22
  end
23
23
 
24
24
  #
25
25
  # Dispatch an action.
26
26
  #
27
- def self.action( action )
27
+ def self.action( engine, action )
28
28
  unless action.valid?
29
- $log.warn "Object #{action.to.name} does not respond to #{action.msg}"
29
+ engine.log.warn "Object #{action.to.name} does not respond to #{action.msg}"
30
30
  end
31
31
 
32
- $engine.exec_env.push_action action
33
- $log.debug "Sending message #{action.msg} to #{action.to.name}"
32
+ engine.exec_env.push_action action
33
+ engine.log.debug "Sending message #{action.msg} to #{action.to.name}"
34
34
  action.dispatch
35
- $engine.exec_env.pop_action
35
+ engine.exec_env.pop_action
36
36
  end
37
37
 
38
38
  end
@@ -19,13 +19,14 @@ module GlooLang
19
19
  #
20
20
  # Set up the execution environment.
21
21
  #
22
- def initialize
23
- $log.debug 'exec env intialized...'
22
+ def initialize( engine )
23
+ @engine = engine
24
+ @engine.log.debug 'exec env intialized...'
24
25
 
25
- @verbs = GlooLang::Exec::Stack.new VERB_STACK
26
- @actions = GlooLang::Exec::Stack.new ACTION_STACK
27
- @scripts = GlooLang::Exec::Stack.new SCRIPT_STACK
28
- @here = GlooLang::Exec::Stack.new HERE_STACK
26
+ @verbs = GlooLang::Exec::Stack.new( @engine, VERB_STACK )
27
+ @actions = GlooLang::Exec::Stack.new( @engine, ACTION_STACK )
28
+ @scripts = GlooLang::Exec::Stack.new( @engine, SCRIPT_STACK )
29
+ @here = GlooLang::Exec::Stack.new( @engine, HERE_STACK )
29
30
  end
30
31
 
31
32
  #
@@ -15,28 +15,28 @@ module GlooLang
15
15
  # that need to be done before or after a verb
16
16
  # is done running.
17
17
  #
18
- def self.go( verb )
19
- $log.debug "running verb #{verb.type_display}"
20
- $engine.heap.error.start_tracking
21
- $engine.exec_env.verbs.push verb
18
+ def self.go( engine, verb )
19
+ engine.log.debug "running verb #{verb.type_display}"
20
+ engine.heap.error.start_tracking
21
+ engine.exec_env.verbs.push verb
22
22
  verb&.run
23
- $engine.exec_env.verbs.pop
24
- $engine.heap.error.clear_if_no_errors
23
+ engine.exec_env.verbs.pop
24
+ engine.heap.error.clear_if_no_errors
25
25
  end
26
26
 
27
27
  #
28
28
  # Send 'run' message to the object.
29
29
  # Resolve the path_name and then send the run message.
30
30
  #
31
- def self.run( path_name )
32
- $log.debug "running script at #{path_name}"
33
- pn = GlooLang::Core::Pn.new path_name
31
+ def self.run( engine, path_name )
32
+ engine.log.debug "running script at #{path_name}"
33
+ pn = GlooLang::Core::Pn.new( engine, path_name )
34
34
  o = pn.resolve
35
35
 
36
36
  if o
37
37
  o.send_message 'run'
38
38
  else
39
- $log.error "Could not send message to object. Bad path: #{path_name}"
39
+ engine.log.error "Could not send message to object. Bad path: #{path_name}"
40
40
  end
41
41
  end
42
42
 
@@ -13,7 +13,8 @@ module GlooLang
13
13
  #
14
14
  # Set up the script.
15
15
  #
16
- def initialize( obj )
16
+ def initialize( engine, obj )
17
+ @engine = engine
17
18
  @obj = obj
18
19
  end
19
20
 
@@ -23,17 +24,17 @@ module GlooLang
23
24
  # of lines.
24
25
  #
25
26
  def run
26
- $engine.exec_env.push_script self
27
+ @engine.exec_env.push_script self
27
28
 
28
29
  if @obj.value.is_a? String
29
- $engine.parser.run @obj.value
30
+ @engine.parser.run @obj.value
30
31
  elsif @obj.value.is_a? Array
31
32
  @obj.value.each do |line|
32
- $engine.parser.run line
33
+ @engine.parser.run line
33
34
  end
34
35
  end
35
36
 
36
- $engine.exec_env.pop_script
37
+ @engine.exec_env.pop_script
37
38
  end
38
39
 
39
40
  #
@@ -13,19 +13,20 @@ module GlooLang
13
13
  #
14
14
  # Set up the stack.
15
15
  #
16
- def initialize( name )
16
+ def initialize( engine, name )
17
+ @engine = engine
17
18
  @name = name
18
19
  clear_stack
19
- $log.debug "#{name} stack intialized..."
20
+ @engine.log.debug "#{name} stack intialized..."
20
21
  end
21
22
 
22
23
  #
23
24
  # Push an item onto the stack.
24
25
  #
25
26
  def push( obj )
26
- $log.debug "#{@name}:push #{obj.display_value}"
27
+ @engine.log.debug "#{@name}:push #{obj.display_value}"
27
28
  @stack.push obj
28
- self.update_out_file if $settings.debug
29
+ self.update_out_file if @engine.settings.debug
29
30
  end
30
31
 
31
32
  #
@@ -33,8 +34,8 @@ module GlooLang
33
34
  #
34
35
  def pop
35
36
  o = @stack.pop
36
- $log.debug "#{@name}:pop #{o.display_value}"
37
- self.update_out_file if $settings.debug
37
+ @engine.log.debug "#{@name}:pop #{o.display_value}"
38
+ self.update_out_file if @engine.settings.debug
38
39
  end
39
40
 
40
41
  #
@@ -55,7 +56,7 @@ module GlooLang
55
56
  # Get the file we'll write debug information for the stack.
56
57
  #
57
58
  def out_file
58
- return File.join( $settings.debug_path, @name )
59
+ return File.join( @engine.settings.debug_path, @name )
59
60
  end
60
61
 
61
62
  #
@@ -15,7 +15,8 @@ module GlooLang
15
15
  #
16
16
  # Create the expression from a list of tokens.
17
17
  #
18
- def initialize( tokens )
18
+ def initialize( engine, tokens )
19
+ @engine = engine
19
20
  @tokens = tokens
20
21
  @symbols = []
21
22
  @left = nil
@@ -110,7 +111,7 @@ module GlooLang
110
111
  return LDecimal.new( token ) if LDecimal.decimal?( token )
111
112
 
112
113
  # last chance: an Object reference
113
- return GlooLang::Core::Pn.new( token )
114
+ return GlooLang::Core::Pn.new( @engine, token )
114
115
  end
115
116
 
116
117
  end
@@ -48,9 +48,9 @@ module GlooLang
48
48
  # Check to see if the referenced object exists.
49
49
  #
50
50
  def msg_resolve
51
- pn = GlooLang::Core::Pn.new( self.value )
51
+ pn = GlooLang::Core::Pn.new( @engine, self.value )
52
52
  s = pn.exists?
53
- $engine.heap.it.set_to s
53
+ @engine.heap.it.set_to s
54
54
  return s
55
55
  end
56
56
 
@@ -64,12 +64,12 @@ module GlooLang
64
64
  # If it ends with the * then we won't resolve the alias since
65
65
  # we are trying to refer to the alias itself.
66
66
  #
67
- def self.resolve_alias( obj, ref_name = nil )
67
+ def self.resolve_alias( engine, obj, ref_name = nil )
68
68
  return nil unless obj
69
69
  return obj unless obj.type_display == GlooLang::Objs::Alias.typename
70
70
  return obj if ref_name&.end_with?( ALIAS_REFERENCE )
71
71
 
72
- ln = GlooLang::Core::Pn.new( obj.value )
72
+ ln = GlooLang::Core::Pn.new( engine, obj.value )
73
73
  return ln.resolve
74
74
  end
75
75
 
@@ -93,7 +93,7 @@ module GlooLang
93
93
  def msg_not
94
94
  v = !value
95
95
  set_value v
96
- $engine.heap.it.set_to v
96
+ @engine.heap.it.set_to v
97
97
  return v
98
98
  end
99
99
 
@@ -102,7 +102,7 @@ module GlooLang
102
102
  #
103
103
  def msg_true
104
104
  set_value true
105
- $engine.heap.it.set_to true
105
+ @engine.heap.it.set_to true
106
106
  return true
107
107
  end
108
108
 
@@ -111,7 +111,7 @@ module GlooLang
111
111
  #
112
112
  def msg_false
113
113
  set_value false
114
- $engine.heap.it.set_to false
114
+ @engine.heap.it.set_to false
115
115
  return false
116
116
  end
117
117
 
@@ -41,7 +41,7 @@ module GlooLang
41
41
  #
42
42
  def msg_count
43
43
  i = child_count
44
- $engine.heap.it.set_to i
44
+ @engine.heap.it.set_to i
45
45
  return i
46
46
  end
47
47
 
@@ -57,7 +57,7 @@ module GlooLang
57
57
  #
58
58
  def msg_show_key_value_table
59
59
  data = self.children.map { |o| [ o.name, o.value ] }
60
- $engine.platform.show_table nil, data, title
60
+ @engine.platform.show_table nil, data, title
61
61
  end
62
62
 
63
63
  end
@@ -35,7 +35,7 @@ module GlooLang
35
35
  end
36
36
 
37
37
  unless new_value.is_a? Numeric
38
- self.value = $engine.converter.convert( new_value, 'Decimal', 0.0 )
38
+ self.value = @engine.converter.convert( new_value, 'Decimal', 0.0 )
39
39
  return
40
40
  end
41
41
 
@@ -61,13 +61,13 @@ module GlooLang
61
61
  def msg_round
62
62
  data = 0
63
63
  if @params&.token_count&.positive?
64
- expr = GlooLang::Expr::Expression.new( @params.tokens )
64
+ expr = GlooLang::Expr::Expression.new( @engine, @params.tokens )
65
65
  data = expr.evaluate.to_i
66
66
  end
67
67
 
68
68
  i = self.value.round( data )
69
69
  set_value i
70
- $engine.heap.it.set_to i
70
+ @engine.heap.it.set_to i
71
71
  return i
72
72
  end
73
73
 
@@ -30,7 +30,7 @@ module GlooLang
30
30
  #
31
31
  def set_value( new_value )
32
32
  unless new_value.is_a? Numeric
33
- self.value = $engine.converter.convert( new_value, 'Integer', 0 )
33
+ self.value = @engine.converter.convert( new_value, 'Integer', 0 )
34
34
  return
35
35
  end
36
36
 
@@ -54,7 +54,7 @@ module GlooLang
54
54
  def msg_inc
55
55
  i = value + 1
56
56
  set_value i
57
- $engine.heap.it.set_to i
57
+ @engine.heap.it.set_to i
58
58
  return i
59
59
  end
60
60
 
@@ -64,7 +64,7 @@ module GlooLang
64
64
  def msg_dec
65
65
  i = value - 1
66
66
  set_value i
67
- $engine.heap.it.set_to i
67
+ @engine.heap.it.set_to i
68
68
  return i
69
69
  end
70
70
 
@@ -90,7 +90,7 @@ module GlooLang
90
90
  # Send the object the unload message.
91
91
  #
92
92
  def msg_run
93
- s = GlooLang::Exec::Script.new self
93
+ s = GlooLang::Exec::Script.new( @engine, self )
94
94
  s.run
95
95
  end
96
96
 
@@ -48,7 +48,7 @@ module GlooLang
48
48
  #
49
49
  def msg_size
50
50
  s = value.size
51
- $engine.heap.it.set_to s
51
+ @engine.heap.it.set_to s
52
52
  return s
53
53
  end
54
54
 
@@ -58,7 +58,7 @@ module GlooLang
58
58
  def msg_up
59
59
  s = value.upcase
60
60
  set_value s
61
- $engine.heap.it.set_to s
61
+ @engine.heap.it.set_to s
62
62
  return s
63
63
  end
64
64
 
@@ -68,7 +68,7 @@ module GlooLang
68
68
  def msg_down
69
69
  s = value.downcase
70
70
  set_value s
71
- $engine.heap.it.set_to s
71
+ @engine.heap.it.set_to s
72
72
  return s
73
73
  end
74
74
 
@@ -64,14 +64,14 @@ module GlooLang
64
64
  def msg_page
65
65
  return unless value
66
66
 
67
- $engine.platform.show( value, false, true )
67
+ @engine.platform.show( value, false, true )
68
68
  end
69
69
 
70
70
  #
71
71
  # Edit the text in the default editor.
72
72
  #
73
73
  def msg_edit
74
- self.value = $engine.platform.edit( self.value )
74
+ self.value = @engine.platform.edit( self.value )
75
75
  end
76
76
 
77
77
  end