gloo-lang 0.9.6 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -1
  3. data/lib/VERSION +1 -1
  4. data/lib/gloo_lang/app/args.rb +3 -2
  5. data/lib/gloo_lang/app/engine.rb +25 -26
  6. data/lib/gloo_lang/app/help.rb +10 -9
  7. data/lib/gloo_lang/app/log.rb +5 -3
  8. data/lib/gloo_lang/app/settings.rb +10 -9
  9. data/lib/gloo_lang/convert/converter.rb +9 -2
  10. data/lib/gloo_lang/core/baseo.rb +2 -1
  11. data/lib/gloo_lang/core/dictionary.rb +16 -6
  12. data/lib/gloo_lang/core/event_manager.rb +9 -8
  13. data/lib/gloo_lang/core/factory.rb +11 -10
  14. data/lib/gloo_lang/core/gloo_system.rb +9 -8
  15. data/lib/gloo_lang/core/heap.rb +5 -4
  16. data/lib/gloo_lang/core/here.rb +2 -2
  17. data/lib/gloo_lang/core/obj.rb +9 -8
  18. data/lib/gloo_lang/core/obj_finder.rb +3 -3
  19. data/lib/gloo_lang/core/parser.rb +6 -5
  20. data/lib/gloo_lang/core/pn.rb +20 -16
  21. data/lib/gloo_lang/core/verb.rb +2 -1
  22. data/lib/gloo_lang/exec/dispatch.rb +8 -8
  23. data/lib/gloo_lang/exec/exec_env.rb +7 -6
  24. data/lib/gloo_lang/exec/runner.rb +10 -10
  25. data/lib/gloo_lang/exec/script.rb +6 -5
  26. data/lib/gloo_lang/exec/stack.rb +8 -7
  27. data/lib/gloo_lang/expr/expression.rb +3 -2
  28. data/lib/gloo_lang/objs/basic/alias.rb +4 -4
  29. data/lib/gloo_lang/objs/basic/boolean.rb +3 -3
  30. data/lib/gloo_lang/objs/basic/container.rb +2 -2
  31. data/lib/gloo_lang/objs/basic/decimal.rb +3 -3
  32. data/lib/gloo_lang/objs/basic/integer.rb +3 -3
  33. data/lib/gloo_lang/objs/basic/script.rb +1 -1
  34. data/lib/gloo_lang/objs/basic/string.rb +3 -3
  35. data/lib/gloo_lang/objs/basic/text.rb +2 -2
  36. data/lib/gloo_lang/objs/ctrl/each.rb +3 -3
  37. data/lib/gloo_lang/objs/ctrl/repeat.rb +2 -2
  38. data/lib/gloo_lang/objs/data/markdown.rb +2 -2
  39. data/lib/gloo_lang/objs/data/query.rb +4 -4
  40. data/lib/gloo_lang/objs/data/table.rb +3 -3
  41. data/lib/gloo_lang/objs/dt/date.rb +1 -1
  42. data/lib/gloo_lang/objs/dt/datetime.rb +2 -2
  43. data/lib/gloo_lang/objs/dt/time.rb +1 -1
  44. data/lib/gloo_lang/objs/ror/erb.rb +2 -2
  45. data/lib/gloo_lang/objs/ror/eval.rb +3 -3
  46. data/lib/gloo_lang/objs/web/http_get.rb +3 -3
  47. data/lib/gloo_lang/objs/web/http_post.rb +8 -8
  48. data/lib/gloo_lang/objs/web/json.rb +5 -5
  49. data/lib/gloo_lang/objs/web/slack.rb +1 -1
  50. data/lib/gloo_lang/objs/web/teams.rb +1 -1
  51. data/lib/gloo_lang/objs/web/uri.rb +6 -6
  52. data/lib/gloo_lang/persist/file_loader.rb +6 -5
  53. data/lib/gloo_lang/persist/file_saver.rb +2 -1
  54. data/lib/gloo_lang/persist/file_storage.rb +6 -5
  55. data/lib/gloo_lang/persist/persist_man.rb +9 -8
  56. data/lib/gloo_lang/utils/stats.rb +5 -4
  57. data/lib/gloo_lang/verbs/context.rb +4 -4
  58. data/lib/gloo_lang/verbs/create.rb +3 -3
  59. data/lib/gloo_lang/verbs/execute.rb +4 -4
  60. data/lib/gloo_lang/verbs/help.rb +23 -23
  61. data/lib/gloo_lang/verbs/if.rb +3 -3
  62. data/lib/gloo_lang/verbs/list.rb +7 -7
  63. data/lib/gloo_lang/verbs/load.rb +3 -3
  64. data/lib/gloo_lang/verbs/move.rb +6 -6
  65. data/lib/gloo_lang/verbs/put.rb +6 -6
  66. data/lib/gloo_lang/verbs/quit.rb +1 -1
  67. data/lib/gloo_lang/verbs/run.rb +5 -5
  68. data/lib/gloo_lang/verbs/save.rb +1 -1
  69. data/lib/gloo_lang/verbs/show.rb +5 -5
  70. data/lib/gloo_lang/verbs/tell.rb +5 -4
  71. data/lib/gloo_lang/verbs/unless.rb +3 -3
  72. data/lib/gloo_lang/verbs/version.rb +1 -1
  73. data/lib/gloo_lang/verbs/wait.rb +1 -1
  74. metadata +2 -4
  75. data/lib/gloo_lang/objs/data/mysql.rb +0 -192
  76. data/lib/gloo_lang/objs/data/sqlite.rb +0 -159
@@ -19,10 +19,10 @@ module GlooLang
19
19
  fn = @tokens.second
20
20
 
21
21
  if fn
22
- $log.debug "Getting ready to load file: #{fn}"
23
- $engine.persist_man.load fn
22
+ @engine.log.debug "Getting ready to load file: #{fn}"
23
+ @engine.persist_man.load fn
24
24
  else
25
- $engine.err MISSING_EXPR_ERR
25
+ @engine.err MISSING_EXPR_ERR
26
26
  end
27
27
  end
28
28
 
@@ -56,15 +56,15 @@ module GlooLang
56
56
  def lookup_obj
57
57
  arr = @tokens.before_token( TO )
58
58
  if arr.count == 1
59
- $engine.err MISSING_SRC_ERR
59
+ @engine.err MISSING_SRC_ERR
60
60
  return
61
61
  end
62
62
 
63
63
  name = arr[ 1 ]
64
- pn = GlooLang::Core::Pn.new name
64
+ pn = GlooLang::Core::Pn.new( @engine, name )
65
65
  o = pn.resolve
66
66
 
67
- $engine.err( "#{MISSING_SRC_OBJ_ERR} #{name}" ) unless o
67
+ @engine.err( "#{MISSING_SRC_OBJ_ERR} #{name}" ) unless o
68
68
  return o
69
69
  end
70
70
 
@@ -74,13 +74,13 @@ module GlooLang
74
74
  def lookup_dst
75
75
  dst = @tokens.after_token( TO )
76
76
  unless dst
77
- $engine.err MISSING_DST_ERR
77
+ @engine.err MISSING_DST_ERR
78
78
  return nil
79
79
  end
80
80
 
81
- pn = GlooLang::Core::Pn.new dst
81
+ pn = GlooLang::Core::Pn.new( @engine, dst )
82
82
  o = pn.resolve
83
- $engine.err( "#{MISSING_DST_OBJ_ERR} '#{dst}'" ) unless o
83
+ @engine.err( "#{MISSING_DST_OBJ_ERR} '#{dst}'" ) unless o
84
84
  return o
85
85
  end
86
86
 
@@ -54,7 +54,7 @@ module GlooLang
54
54
  def fetch_value_tokens
55
55
  value = @tokens.before_token( INTO )
56
56
  if value.nil? || ( value.count <= 1 )
57
- $engine.err MISSING_EXPR_ERR
57
+ @engine.err MISSING_EXPR_ERR
58
58
  return nil
59
59
  end
60
60
 
@@ -69,7 +69,7 @@ module GlooLang
69
69
  target = @tokens.after_token( INTO )
70
70
  return target if target
71
71
 
72
- $engine.err INTO_MISSING_ERR
72
+ @engine.err INTO_MISSING_ERR
73
73
  return nil
74
74
  end
75
75
 
@@ -77,15 +77,15 @@ module GlooLang
77
77
  # Update the target with the new value.
78
78
  #
79
79
  def update_target( target, value )
80
- pn = GlooLang::Core::Pn.new target
80
+ pn = GlooLang::Core::Pn.new( @engine, target )
81
81
  o = pn.resolve
82
82
  if o.nil?
83
- $engine.err "#{TARGET_ERR} #{target}"
83
+ @engine.err "#{TARGET_ERR} #{target}"
84
84
  elsif value.count.positive?
85
- expr = GlooLang::Expr::Expression.new( value )
85
+ expr = GlooLang::Expr::Expression.new( @engine, value )
86
86
  result = expr.evaluate
87
87
  o.set_value result
88
- $engine.heap.it.set_to result
88
+ @engine.heap.it.set_to result
89
89
  end
90
90
  end
91
91
 
@@ -18,7 +18,7 @@ module GlooLang
18
18
  # engine stop gracefully next time through the loop.
19
19
  #
20
20
  def run
21
- $engine.stop_running
21
+ @engine.stop_running
22
22
  end
23
23
 
24
24
  #
@@ -19,7 +19,7 @@ module GlooLang
19
19
  #
20
20
  def run
21
21
  if @tokens.token_count < 2
22
- $engine.err MISSING_EXPR_ERR
22
+ @engine.err MISSING_EXPR_ERR
23
23
  return
24
24
  end
25
25
 
@@ -54,7 +54,7 @@ module GlooLang
54
54
  # Run a script specified by pathname
55
55
  #
56
56
  def run_script
57
- GlooLang::Exec::Runner.run @tokens.second
57
+ GlooLang::Exec::Runner.run( @engine, @tokens.second )
58
58
  end
59
59
 
60
60
  #
@@ -62,12 +62,12 @@ module GlooLang
62
62
  #
63
63
  def run_expression
64
64
  unless @tokens.token_count > 2
65
- $engine.err MISSING_EXPR_ERR
65
+ @engine.err MISSING_EXPR_ERR
66
66
  return
67
67
  end
68
68
 
69
- expr = GlooLang::Expr::Expression.new( @tokens.params[ 1..-1 ] )
70
- $engine.parser.run expr.evaluate
69
+ expr = GlooLang::Expr::Expression.new( @engine, @tokens.params[ 1..-1 ] )
70
+ @engine.parser.run expr.evaluate
71
71
  end
72
72
 
73
73
  end
@@ -17,7 +17,7 @@ module GlooLang
17
17
  def run
18
18
  # TODO: Not currently using folders or keeping
19
19
  # track of where the object was loaded from.
20
- $engine.persist_man.save @tokens.second
20
+ @engine.persist_man.save @tokens.second
21
21
  end
22
22
 
23
23
  #
@@ -17,12 +17,12 @@ module GlooLang
17
17
  #
18
18
  def run
19
19
  if @tokens.token_count > 1
20
- expr = GlooLang::Expr::Expression.new( @tokens.params )
20
+ expr = GlooLang::Expr::Expression.new( @engine, @tokens.params )
21
21
  result = expr.evaluate
22
- $log.show get_formatted_string( result )
23
- $engine.heap.it.set_to result
22
+ @engine.log.show get_formatted_string( result )
23
+ @engine.heap.it.set_to result
24
24
  else
25
- $log.show ''
25
+ @engine.log.show ''
26
26
  end
27
27
  end
28
28
 
@@ -51,7 +51,7 @@ module GlooLang
51
51
  #
52
52
  def get_formatted_string( str )
53
53
  if @params&.token_count&.positive?
54
- expr = GlooLang::Expr::Expression.new( @params.tokens )
54
+ expr = GlooLang::Expr::Expression.new( @engine, @params.tokens )
55
55
  val = expr.evaluate
56
56
  color = val.to_sym
57
57
  # return ColorizedString[ str.to_s ].colorize( color )
@@ -51,7 +51,7 @@ module GlooLang
51
51
  def setup_msg
52
52
  @msg = @tokens.after_token( TO )
53
53
 
54
- $engine.err( UNKNOWN_MSG_ERR ) unless @msg
54
+ @engine.err( UNKNOWN_MSG_ERR ) unless @msg
55
55
  end
56
56
 
57
57
  #
@@ -59,7 +59,7 @@ module GlooLang
59
59
  #
60
60
  def setup_target
61
61
  @obj_name = @tokens.second
62
- pn = GlooLang::Core::Pn.new @obj_name
62
+ pn = GlooLang::Core::Pn.new( @engine, @obj_name )
63
63
  @target_obj = pn.resolve
64
64
  end
65
65
 
@@ -68,9 +68,10 @@ module GlooLang
68
68
  #
69
69
  def dispatch_msg
70
70
  if @target_obj
71
- GlooLang::Exec::Dispatch.message @msg, @target_obj, @params
71
+ GlooLang::Exec::Dispatch.message(
72
+ @engine, @msg, @target_obj, @params )
72
73
  else
73
- $engine.err "#{OBJ_NOT_FOUND_ERR} #{@obj_name}"
74
+ @engine.err "#{OBJ_NOT_FOUND_ERR} #{@obj_name}"
74
75
  end
75
76
  end
76
77
 
@@ -55,7 +55,7 @@ module GlooLang
55
55
  # The first token is the verb, so we drop it.
56
56
  value = value[ 1..-1 ]
57
57
  else
58
- $engine.err MISSING_EXPR_ERR
58
+ @engine.err MISSING_EXPR_ERR
59
59
  end
60
60
 
61
61
  return value
@@ -67,7 +67,7 @@ module GlooLang
67
67
  def evals_false( value )
68
68
  eval_result = false
69
69
  if value.count.positive?
70
- expr = GlooLang::Expr::Expression.new( value )
70
+ expr = GlooLang::Expr::Expression.new( @engine, value )
71
71
  result = expr.evaluate
72
72
  eval_result = true if result == false
73
73
  eval_result = true if result.is_a?( Numeric ) && result.zero?
@@ -81,7 +81,7 @@ module GlooLang
81
81
  #
82
82
  def run_do
83
83
  cmd = @tokens.expr_after( DO )
84
- i = $engine.parser.parse_immediate cmd
84
+ i = @engine.parser.parse_immediate cmd
85
85
  return unless i
86
86
 
87
87
  i.run
@@ -15,7 +15,7 @@ module GlooLang
15
15
  # Run the verb.
16
16
  #
17
17
  def run
18
- $log.show GlooLang::App::Info.full_version
18
+ @engine.log.show GlooLang::App::Info.full_version
19
19
  end
20
20
 
21
21
  #
@@ -17,7 +17,7 @@ module GlooLang
17
17
  def run
18
18
  x = 1
19
19
  if @tokens.token_count > 1
20
- expr = GlooLang::Expr::Expression.new( @tokens.params )
20
+ expr = GlooLang::Expr::Expression.new( @engine, @tokens.params )
21
21
  x = expr.evaluate.to_i
22
22
  end
23
23
  sleep x
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gloo-lang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Crane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-18 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -309,9 +309,7 @@ files:
309
309
  - lib/gloo_lang/objs/ctrl/each.rb
310
310
  - lib/gloo_lang/objs/ctrl/repeat.rb
311
311
  - lib/gloo_lang/objs/data/markdown.rb
312
- - lib/gloo_lang/objs/data/mysql.rb
313
312
  - lib/gloo_lang/objs/data/query.rb
314
- - lib/gloo_lang/objs/data/sqlite.rb
315
313
  - lib/gloo_lang/objs/data/table.rb
316
314
  - lib/gloo_lang/objs/dt/date.rb
317
315
  - lib/gloo_lang/objs/dt/datetime.rb
@@ -1,192 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved.
3
- #
4
- # A MySQL database connection.
5
- #
6
- #
7
- # https://github.com/brianmario/mysql2
8
- # https://www.rubydoc.info/gems/mysql2/0.2.3/Mysql2/Client
9
- #
10
- # Connection Parameters
11
- # user = opts[:username]
12
- # pass = opts[:password]
13
- # host = opts[:host] || 'localhost'
14
- # port = opts[:port] || 3306
15
- # database = opts[:database]
16
- # socket = opts[:socket]
17
- # flags = opts[:flags] || 0
18
- #
19
- require 'mysql2'
20
-
21
- module GlooLang
22
- module Objs
23
- class Mysql < GlooLang::Core::Obj
24
-
25
- KEYWORD = 'mysql'.freeze
26
- KEYWORD_SHORT = 'mysql'.freeze
27
-
28
- HOST = 'host'.freeze
29
- DB = 'database'.freeze
30
- USER = 'username'.freeze
31
- PASSWD = 'password'.freeze
32
-
33
- #
34
- # The name of the object type.
35
- #
36
- def self.typename
37
- return KEYWORD
38
- end
39
-
40
- #
41
- # The short name of the object type.
42
- #
43
- def self.short_typename
44
- return KEYWORD_SHORT
45
- end
46
-
47
- # ---------------------------------------------------------------------
48
- # Children
49
- # ---------------------------------------------------------------------
50
-
51
- #
52
- # Does this object have children to add when an object
53
- # is created in interactive mode?
54
- # This does not apply during obj load, etc.
55
- #
56
- def add_children_on_create?
57
- return true
58
- end
59
-
60
- #
61
- # Add children to this object.
62
- # This is used by containers to add children needed
63
- # for default configurations.
64
- #
65
- def add_default_children
66
- fac = $engine.factory
67
- fac.create_string HOST, nil, self
68
- fac.create_string DB, nil, self
69
- fac.create_string USER, nil, self
70
- fac.create_string PASSWD, nil, self
71
- end
72
-
73
- # ---------------------------------------------------------------------
74
- # Messages
75
- # ---------------------------------------------------------------------
76
-
77
- #
78
- # Get a list of message names that this object receives.
79
- #
80
- def self.messages
81
- return super + [ 'verify' ]
82
- end
83
-
84
- #
85
- # SSH to the host and execute the command, then update result.
86
- #
87
- def msg_verify
88
- return unless connects?
89
-
90
- $engine.heap.it.set_to true
91
- end
92
-
93
- # ---------------------------------------------------------------------
94
- # DB functions (all database connections)
95
- # ---------------------------------------------------------------------
96
-
97
- #
98
- # Open a connection and execute the SQL statement.
99
- # Return the resulting data.
100
- #
101
- def query( sql, params = nil )
102
- h = {
103
- host: host_value,
104
- database: db_value,
105
- username: user_value,
106
- password: passwd_value
107
- }
108
- client = Mysql2::Client.new( h )
109
- return client.query( sql ) unless params
110
-
111
- pst = client.prepare( sql )
112
- return pst.execute( *params )
113
- end
114
-
115
- # ---------------------------------------------------------------------
116
- # Private functions
117
- # ---------------------------------------------------------------------
118
-
119
- private
120
-
121
- #
122
- # Get the host from the child object.
123
- # Returns nil if there is none.
124
- #
125
- def host_value
126
- o = find_child HOST
127
- return nil unless o
128
-
129
- o = GlooLang::Objs::Alias.resolve_alias( o )
130
- return o.value
131
- end
132
-
133
- #
134
- # Get the Database name from the child object.
135
- # Returns nil if there is none.
136
- #
137
- def db_value
138
- o = find_child DB
139
- return nil unless o
140
-
141
- o = GlooLang::Objs::Alias.resolve_alias( o )
142
- return o.value
143
- end
144
-
145
- #
146
- # Get the Username from the child object.
147
- # Returns nil if there is none.
148
- #
149
- def user_value
150
- o = find_child USER
151
- return nil unless o
152
-
153
- o = GlooLang::Objs::Alias.resolve_alias( o )
154
- return o.value
155
- end
156
-
157
- #
158
- # Get the Password name from the child object.
159
- # Returns nil if there is none.
160
- #
161
- def passwd_value
162
- o = find_child PASSWD
163
- return nil unless o
164
-
165
- o = GlooLang::Objs::Alias.resolve_alias( o )
166
- return o.value
167
- end
168
-
169
- #
170
- # Try the connection and make sure it works.
171
- # Returns true if we can establish a connection.
172
- #
173
- def connects?
174
- begin
175
- h = {
176
- host: host_value,
177
- database: db_value,
178
- username: user_value,
179
- password: passwd_value
180
- }
181
- Mysql2::Client.new( h )
182
- rescue => e
183
- $engine.err e.message
184
- $engine.heap.it.set_to false
185
- return false
186
- end
187
- return true
188
- end
189
-
190
- end
191
- end
192
- end
@@ -1,159 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved.
3
- #
4
- # A Sqlite3 database connection.
5
- #
6
- # https://www.rubydoc.info/gems/sqlite3/1.3.11
7
- # https://www.devdungeon.com/content/ruby-sqlite-tutorial
8
- #
9
- # db.results_as_hash = true
10
- # Set results to return as Hash object.
11
- # This is slower but offers a huge convenience.
12
- # Consider turning it off for high performance situations.
13
- # Each row will have the column name as the hash key.
14
- #
15
- # # Alternatively, to only get one row and discard the rest,
16
- # replace `db.query()` with `db.get_first_value()`.
17
- #
18
- require 'sqlite3'
19
-
20
- module GlooLang
21
- module Objs
22
- class Sqlite < GlooLang::Core::Obj
23
-
24
- KEYWORD = 'sqlite'.freeze
25
- KEYWORD_SHORT = 'sqlite'.freeze
26
-
27
- DB = 'database'.freeze
28
- DEFAULT_DB = 'test.db'.freeze
29
-
30
- DB_REQUIRED_ERR = 'The database name is required!'.freeze
31
- DB_NOT_FOUND_ERR = 'The database file was not found!'.freeze
32
-
33
- #
34
- # The name of the object type.
35
- #
36
- def self.typename
37
- return KEYWORD
38
- end
39
-
40
- #
41
- # The short name of the object type.
42
- #
43
- def self.short_typename
44
- return KEYWORD_SHORT
45
- end
46
-
47
- # ---------------------------------------------------------------------
48
- # Children
49
- # ---------------------------------------------------------------------
50
-
51
- #
52
- # Does this object have children to add when an object
53
- # is created in interactive mode?
54
- # This does not apply during obj load, etc.
55
- #
56
- def add_children_on_create?
57
- return true
58
- end
59
-
60
- #
61
- # Add children to this object.
62
- # This is used by containers to add children needed
63
- # for default configurations.
64
- #
65
- def add_default_children
66
- fac = $engine.factory
67
- fac.create_string DB, DEFAULT_DB, self
68
- end
69
-
70
- # ---------------------------------------------------------------------
71
- # Messages
72
- # ---------------------------------------------------------------------
73
-
74
- #
75
- # Get a list of message names that this object receives.
76
- #
77
- def self.messages
78
- return super + [ 'verify' ]
79
- end
80
-
81
- #
82
- # Verify access to the Sqlite database specified.
83
- #
84
- def msg_verify
85
- name = db_value
86
- if name.empty?
87
- $engine.err DB_REQUIRED_ERR
88
- $engine.heap.it.set_to false
89
- return
90
- end
91
-
92
- unless File.exist? name
93
- $engine.err DB_NOT_FOUND_ERR
94
- $engine.heap.it.set_to false
95
- return
96
- end
97
-
98
- return unless connects?
99
-
100
- $engine.heap.it.set_to true
101
- end
102
-
103
- # ---------------------------------------------------------------------
104
- # DB functions (all database connections)
105
- # ---------------------------------------------------------------------
106
-
107
- #
108
- # Open a connection and execute the SQL statement.
109
- # Return the resulting data.
110
- #
111
- def query( sql, params = nil )
112
- name = db_value
113
- unless name
114
- $engine.err DB_REQUIRED_ERR
115
- return
116
- end
117
-
118
- db = SQLite3::Database.open name
119
- db.results_as_hash = true
120
- return db.query( sql, params )
121
- end
122
-
123
- # ---------------------------------------------------------------------
124
- # Private functions
125
- # ---------------------------------------------------------------------
126
-
127
- private
128
-
129
- #
130
- # Get the Database file from the child object.
131
- # Returns nil if there is none.
132
- #
133
- def db_value
134
- o = find_child DB
135
- return nil unless o
136
-
137
- return o.value
138
- end
139
-
140
- #
141
- # Try the connection and make sure it works.
142
- # Returns true if we can connect and do a query.
143
- #
144
- def connects?
145
- begin
146
- db = SQLite3::Database.open db_value
147
- sql = "SELECT COUNT(name) FROM sqlite_master WHERE type='table'"
148
- db.get_first_value sql
149
- rescue => e
150
- $engine.err e.message
151
- $engine.heap.it.set_to false
152
- return false
153
- end
154
- return true
155
- end
156
-
157
- end
158
- end
159
- end