gloo 0.8.0 → 1.2.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 (203) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.gitignore +2 -1
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/LICENSE.txt +1 -1
  7. data/gloo.gemspec +12 -4
  8. data/lib/VERSION +1 -1
  9. data/lib/dependencies.rb +4 -4
  10. data/lib/gloo/app/info.rb +3 -1
  11. data/lib/gloo/app/log.rb +1 -29
  12. data/lib/gloo/app/platform.rb +142 -0
  13. data/lib/gloo/objs/cli/banner.rb +2 -2
  14. data/lib/gloo/objs/cli/bar.rb +4 -4
  15. data/lib/gloo/objs/cli/colorize.rb +3 -3
  16. data/lib/gloo/objs/cli/confirm.rb +3 -3
  17. data/lib/gloo/objs/cli/menu.rb +9 -9
  18. data/lib/gloo/objs/cli/menu_item.rb +2 -2
  19. data/lib/gloo/objs/cli/pastel.rb +2 -2
  20. data/lib/gloo/objs/cli/prompt.rb +4 -4
  21. data/lib/gloo/objs/cli/select.rb +4 -4
  22. data/lib/gloo/objs/data/mysql.rb +9 -9
  23. data/lib/gloo/objs/data/sqlite.rb +10 -10
  24. data/lib/gloo/objs/dev/git.rb +7 -7
  25. data/lib/gloo/objs/dev/stats.rb +8 -5
  26. data/lib/gloo/objs/snd/play.rb +1 -1
  27. data/lib/gloo/objs/snd/say.rb +2 -2
  28. data/lib/gloo/objs/system/file_handle.rb +9 -9
  29. data/lib/gloo/objs/system/ssh_exec.rb +3 -3
  30. data/lib/gloo/objs/system/system.rb +2 -2
  31. data/lib/gloo/verbs/alert.rb +7 -7
  32. data/lib/gloo/verbs/beep.rb +1 -1
  33. data/lib/gloo/verbs/cls.rb +2 -2
  34. data/lib/gloo/verbs/help.rb +7 -189
  35. data/lib/gloo/verbs/version.rb +3 -3
  36. data/lib/gloo.rb +5 -1
  37. data/lib/run.rb +5 -1
  38. metadata +41 -177
  39. data/Gemfile.lock +0 -171
  40. data/lib/gloo/app/args.rb +0 -112
  41. data/lib/gloo/app/engine.rb +0 -230
  42. data/lib/gloo/app/help.rb +0 -156
  43. data/lib/gloo/app/mode.rb +0 -27
  44. data/lib/gloo/app/settings.rb +0 -186
  45. data/lib/gloo/convert/converter.rb +0 -35
  46. data/lib/gloo/convert/string_to_datetime.rb +0 -21
  47. data/lib/gloo/convert/string_to_decimal.rb +0 -20
  48. data/lib/gloo/convert/string_to_integer.rb +0 -20
  49. data/lib/gloo/core/baseo.rb +0 -30
  50. data/lib/gloo/core/dictionary.rb +0 -181
  51. data/lib/gloo/core/error.rb +0 -61
  52. data/lib/gloo/core/event_manager.rb +0 -44
  53. data/lib/gloo/core/factory.rb +0 -210
  54. data/lib/gloo/core/gloo_system.rb +0 -266
  55. data/lib/gloo/core/heap.rb +0 -52
  56. data/lib/gloo/core/here.rb +0 -36
  57. data/lib/gloo/core/it.rb +0 -36
  58. data/lib/gloo/core/literal.rb +0 -30
  59. data/lib/gloo/core/obj.rb +0 -303
  60. data/lib/gloo/core/obj_finder.rb +0 -30
  61. data/lib/gloo/core/op.rb +0 -40
  62. data/lib/gloo/core/parser.rb +0 -59
  63. data/lib/gloo/core/pn.rb +0 -188
  64. data/lib/gloo/core/tokens.rb +0 -165
  65. data/lib/gloo/core/verb.rb +0 -86
  66. data/lib/gloo/exec/action.rb +0 -48
  67. data/lib/gloo/exec/dispatch.rb +0 -40
  68. data/lib/gloo/exec/exec_env.rb +0 -74
  69. data/lib/gloo/exec/runner.rb +0 -45
  70. data/lib/gloo/exec/script.rb +0 -49
  71. data/lib/gloo/exec/stack.rb +0 -78
  72. data/lib/gloo/expr/expression.rb +0 -118
  73. data/lib/gloo/expr/l_boolean.rb +0 -36
  74. data/lib/gloo/expr/l_decimal.rb +0 -39
  75. data/lib/gloo/expr/l_integer.rb +0 -37
  76. data/lib/gloo/expr/l_string.rb +0 -58
  77. data/lib/gloo/expr/op_div.rb +0 -22
  78. data/lib/gloo/expr/op_minus.rb +0 -22
  79. data/lib/gloo/expr/op_mult.rb +0 -22
  80. data/lib/gloo/expr/op_plus.rb +0 -24
  81. data/lib/gloo/help/app/application.txt +0 -22
  82. data/lib/gloo/help/app/configuration.txt +0 -7
  83. data/lib/gloo/help/app/default_help.txt +0 -14
  84. data/lib/gloo/help/app/logging.txt +0 -16
  85. data/lib/gloo/help/core/color.txt +0 -31
  86. data/lib/gloo/help/core/error.txt +0 -33
  87. data/lib/gloo/help/core/events.txt +0 -21
  88. data/lib/gloo/help/core/gloo_system.txt +0 -57
  89. data/lib/gloo/help/core/here.txt +0 -30
  90. data/lib/gloo/help/core/it.txt +0 -23
  91. data/lib/gloo/help/core/ops.txt +0 -16
  92. data/lib/gloo/help/core/pathname.txt +0 -29
  93. data/lib/gloo/help/objs/basic/alias.txt +0 -36
  94. data/lib/gloo/help/objs/basic/boolean.txt +0 -28
  95. data/lib/gloo/help/objs/basic/container.txt +0 -33
  96. data/lib/gloo/help/objs/basic/decimal.txt +0 -28
  97. data/lib/gloo/help/objs/basic/integer.txt +0 -27
  98. data/lib/gloo/help/objs/basic/script.txt +0 -29
  99. data/lib/gloo/help/objs/basic/string.txt +0 -28
  100. data/lib/gloo/help/objs/basic/text.txt +0 -27
  101. data/lib/gloo/help/objs/basic/untyped.txt +0 -22
  102. data/lib/gloo/help/objs/cli/banner.txt +0 -49
  103. data/lib/gloo/help/objs/cli/bar.txt +0 -37
  104. data/lib/gloo/help/objs/cli/colorize.txt +0 -33
  105. data/lib/gloo/help/objs/cli/confirm.txt +0 -26
  106. data/lib/gloo/help/objs/cli/menu.txt +0 -44
  107. data/lib/gloo/help/objs/cli/menu_item.txt +0 -26
  108. data/lib/gloo/help/objs/cli/pastel.txt +0 -43
  109. data/lib/gloo/help/objs/cli/prompt.txt +0 -27
  110. data/lib/gloo/help/objs/cli/select.txt +0 -34
  111. data/lib/gloo/help/objs/ctrl/each.txt +0 -48
  112. data/lib/gloo/help/objs/ctrl/repeat.txt +0 -38
  113. data/lib/gloo/help/objs/data/markdown.txt +0 -25
  114. data/lib/gloo/help/objs/data/mysql.txt +0 -40
  115. data/lib/gloo/help/objs/data/query.txt +0 -37
  116. data/lib/gloo/help/objs/data/sqlite.txt +0 -26
  117. data/lib/gloo/help/objs/data/table.txt +0 -46
  118. data/lib/gloo/help/objs/dev/git_repo.txt +0 -36
  119. data/lib/gloo/help/objs/dev/stats.txt +0 -36
  120. data/lib/gloo/help/objs/dt/date.txt +0 -23
  121. data/lib/gloo/help/objs/dt/datetime.txt +0 -24
  122. data/lib/gloo/help/objs/dt/time.txt +0 -23
  123. data/lib/gloo/help/objs/ror/erb.txt +0 -37
  124. data/lib/gloo/help/objs/ror/eval.txt +0 -24
  125. data/lib/gloo/help/objs/snd/play.txt +0 -23
  126. data/lib/gloo/help/objs/snd/say.txt +0 -28
  127. data/lib/gloo/help/objs/system/file.txt +0 -48
  128. data/lib/gloo/help/objs/system/ssh_exec.txt +0 -30
  129. data/lib/gloo/help/objs/system/system.txt +0 -32
  130. data/lib/gloo/help/objs/web/http_get.txt +0 -35
  131. data/lib/gloo/help/objs/web/http_post.txt +0 -34
  132. data/lib/gloo/help/objs/web/json.txt +0 -34
  133. data/lib/gloo/help/objs/web/slack.txt +0 -33
  134. data/lib/gloo/help/objs/web/teams.txt +0 -30
  135. data/lib/gloo/help/objs/web/uri.txt +0 -38
  136. data/lib/gloo/help/verbs/alert.txt +0 -33
  137. data/lib/gloo/help/verbs/beep.txt +0 -25
  138. data/lib/gloo/help/verbs/cls.txt +0 -24
  139. data/lib/gloo/help/verbs/context.txt +0 -43
  140. data/lib/gloo/help/verbs/create.txt +0 -33
  141. data/lib/gloo/help/verbs/execute.txt +0 -27
  142. data/lib/gloo/help/verbs/help.txt +0 -34
  143. data/lib/gloo/help/verbs/if.txt +0 -37
  144. data/lib/gloo/help/verbs/list.txt +0 -34
  145. data/lib/gloo/help/verbs/load.txt +0 -38
  146. data/lib/gloo/help/verbs/move.txt +0 -42
  147. data/lib/gloo/help/verbs/put.txt +0 -38
  148. data/lib/gloo/help/verbs/quit.txt +0 -25
  149. data/lib/gloo/help/verbs/run.txt +0 -41
  150. data/lib/gloo/help/verbs/save.txt +0 -26
  151. data/lib/gloo/help/verbs/show.txt +0 -30
  152. data/lib/gloo/help/verbs/tell.txt +0 -34
  153. data/lib/gloo/help/verbs/unless.txt +0 -38
  154. data/lib/gloo/help/verbs/version.txt +0 -32
  155. data/lib/gloo/help/verbs/wait.txt +0 -29
  156. data/lib/gloo/objs/basic/alias.rb +0 -78
  157. data/lib/gloo/objs/basic/boolean.rb +0 -120
  158. data/lib/gloo/objs/basic/container.rb +0 -76
  159. data/lib/gloo/objs/basic/decimal.rb +0 -76
  160. data/lib/gloo/objs/basic/integer.rb +0 -73
  161. data/lib/gloo/objs/basic/script.rb +0 -99
  162. data/lib/gloo/objs/basic/string.rb +0 -77
  163. data/lib/gloo/objs/basic/text.rb +0 -87
  164. data/lib/gloo/objs/basic/untyped.rb +0 -41
  165. data/lib/gloo/objs/ctrl/each.rb +0 -279
  166. data/lib/gloo/objs/ctrl/repeat.rb +0 -108
  167. data/lib/gloo/objs/data/markdown.rb +0 -84
  168. data/lib/gloo/objs/data/query.rb +0 -176
  169. data/lib/gloo/objs/data/table.rb +0 -140
  170. data/lib/gloo/objs/dt/date.rb +0 -50
  171. data/lib/gloo/objs/dt/datetime.rb +0 -62
  172. data/lib/gloo/objs/dt/time.rb +0 -50
  173. data/lib/gloo/objs/ror/erb.rb +0 -116
  174. data/lib/gloo/objs/ror/eval.rb +0 -107
  175. data/lib/gloo/objs/web/http_get.rb +0 -159
  176. data/lib/gloo/objs/web/http_post.rb +0 -183
  177. data/lib/gloo/objs/web/json.rb +0 -135
  178. data/lib/gloo/objs/web/slack.rb +0 -130
  179. data/lib/gloo/objs/web/teams.rb +0 -117
  180. data/lib/gloo/objs/web/uri.rb +0 -148
  181. data/lib/gloo/persist/file_loader.rb +0 -191
  182. data/lib/gloo/persist/file_saver.rb +0 -49
  183. data/lib/gloo/persist/file_storage.rb +0 -45
  184. data/lib/gloo/persist/line_splitter.rb +0 -81
  185. data/lib/gloo/persist/persist_man.rb +0 -120
  186. data/lib/gloo/utils/format.rb +0 -21
  187. data/lib/gloo/utils/stats.rb +0 -205
  188. data/lib/gloo/utils/words.rb +0 -19
  189. data/lib/gloo/verbs/context.rb +0 -62
  190. data/lib/gloo/verbs/create.rb +0 -68
  191. data/lib/gloo/verbs/execute.rb +0 -56
  192. data/lib/gloo/verbs/if.rb +0 -92
  193. data/lib/gloo/verbs/list.rb +0 -98
  194. data/lib/gloo/verbs/load.rb +0 -45
  195. data/lib/gloo/verbs/move.rb +0 -89
  196. data/lib/gloo/verbs/put.rb +0 -94
  197. data/lib/gloo/verbs/quit.rb +0 -40
  198. data/lib/gloo/verbs/run.rb +0 -75
  199. data/lib/gloo/verbs/save.rb +0 -39
  200. data/lib/gloo/verbs/show.rb +0 -64
  201. data/lib/gloo/verbs/tell.rb +0 -79
  202. data/lib/gloo/verbs/unless.rb +0 -92
  203. data/lib/gloo/verbs/wait.rb +0 -42
@@ -19,7 +19,7 @@ require 'sqlite3'
19
19
 
20
20
  module Gloo
21
21
  module Objs
22
- class Sqlite < Gloo::Core::Obj
22
+ class Sqlite < GlooLang::Core::Obj
23
23
 
24
24
  KEYWORD = 'sqlite'.freeze
25
25
  KEYWORD_SHORT = 'sqlite'.freeze
@@ -63,7 +63,7 @@ module Gloo
63
63
  # for default configurations.
64
64
  #
65
65
  def add_default_children
66
- fac = $engine.factory
66
+ fac = @engine.factory
67
67
  fac.create_string DB, DEFAULT_DB, self
68
68
  end
69
69
 
@@ -84,20 +84,20 @@ module Gloo
84
84
  def msg_verify
85
85
  name = db_value
86
86
  if name.empty?
87
- $engine.err DB_REQUIRED_ERR
88
- $engine.heap.it.set_to false
87
+ @engine.err DB_REQUIRED_ERR
88
+ @engine.heap.it.set_to false
89
89
  return
90
90
  end
91
91
 
92
92
  unless File.exist? name
93
- $engine.err DB_NOT_FOUND_ERR
94
- $engine.heap.it.set_to false
93
+ @engine.err DB_NOT_FOUND_ERR
94
+ @engine.heap.it.set_to false
95
95
  return
96
96
  end
97
97
 
98
98
  return unless connects?
99
99
 
100
- $engine.heap.it.set_to true
100
+ @engine.heap.it.set_to true
101
101
  end
102
102
 
103
103
  # ---------------------------------------------------------------------
@@ -111,7 +111,7 @@ module Gloo
111
111
  def query( sql, params = nil )
112
112
  name = db_value
113
113
  unless name
114
- $engine.err DB_REQUIRED_ERR
114
+ @engine.err DB_REQUIRED_ERR
115
115
  return
116
116
  end
117
117
 
@@ -147,8 +147,8 @@ module Gloo
147
147
  sql = "SELECT COUNT(name) FROM sqlite_master WHERE type='table'"
148
148
  db.get_first_value sql
149
149
  rescue => e
150
- $engine.err e.message
151
- $engine.heap.it.set_to false
150
+ @engine.err e.message
151
+ @engine.heap.it.set_to false
152
152
  return false
153
153
  end
154
154
  return true
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Objs
9
- class Git < Gloo::Core::Obj
9
+ class Git < GlooLang::Core::Obj
10
10
 
11
11
  KEYWORD = 'git_repo'.freeze
12
12
  KEYWORD_SHORT = 'git'.freeze
@@ -56,7 +56,7 @@ module Gloo
56
56
  branch = branch.strip
57
57
  end
58
58
 
59
- $engine.heap.it.set_to branch
59
+ @engine.heap.it.set_to branch
60
60
  end
61
61
 
62
62
  #
@@ -77,7 +77,7 @@ module Gloo
77
77
  path = path_value
78
78
  if path_is_dir?( path )
79
79
  if @params&.token_count&.positive?
80
- expr = Gloo::Expr::Expression.new( @params.tokens )
80
+ expr = GlooLang::Expr::Expression.new( @engine, @params.tokens )
81
81
  msg = expr.evaluate
82
82
  end
83
83
  branch = `cd #{path}; git rev-parse --abbrev-ref HEAD`
@@ -87,7 +87,7 @@ module Gloo
87
87
  psh = 'git push origin '
88
88
  `cd #{path};#{add};#{cmt}"#{msg}";#{psh}#{branch}`
89
89
  end
90
- $engine.heap.it.set_to msg
90
+ @engine.heap.it.set_to msg
91
91
  end
92
92
 
93
93
  #
@@ -97,7 +97,7 @@ module Gloo
97
97
  path = path_value
98
98
  result = `cd #{path}; git status -s` if path_is_dir?( path )
99
99
  result ||= ''
100
- $engine.heap.it.set_to result
100
+ @engine.heap.it.set_to result
101
101
  end
102
102
 
103
103
  #
@@ -118,7 +118,7 @@ module Gloo
118
118
  result = true unless data.strip.empty?
119
119
  end
120
120
 
121
- $engine.heap.it.set_to result
121
+ @engine.heap.it.set_to result
122
122
  end
123
123
 
124
124
  #
@@ -132,7 +132,7 @@ module Gloo
132
132
  result = File.exist? pn
133
133
  end
134
134
 
135
- $engine.heap.it.set_to result
135
+ @engine.heap.it.set_to result
136
136
  end
137
137
 
138
138
  end
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Objs
9
- class Stats < Gloo::Core::Obj
9
+ class Stats < GlooLang::Core::Obj
10
10
 
11
11
  KEYWORD = 'stats'.freeze
12
12
  KEYWORD_SHORT = 'stat'.freeze
@@ -72,7 +72,7 @@ module Gloo
72
72
  # for default configurations.
73
73
  #
74
74
  def add_default_children
75
- fac = $engine.factory
75
+ fac = @engine.factory
76
76
  fac.create_file FOLDER, '', self
77
77
  fac.create_string TYPES, '', self
78
78
  fac.create_can SKIP, self
@@ -95,7 +95,8 @@ module Gloo
95
95
  # Show all project stats.
96
96
  #
97
97
  def msg_show_all
98
- o = Gloo::Utils::Stats.new( path_value, types_value, skip_list )
98
+ o = GlooLang::Utils::Stats.new(
99
+ @engine, path_value, types_value, skip_list )
99
100
  o.show_all
100
101
  end
101
102
 
@@ -103,7 +104,8 @@ module Gloo
103
104
  # Show file types.
104
105
  #
105
106
  def msg_show_types
106
- o = Gloo::Utils::Stats.new( path_value, types_value, skip_list )
107
+ o = GlooLang::Utils::Stats.new(
108
+ @engine, path_value, types_value, skip_list )
107
109
  o.file_types
108
110
  end
109
111
 
@@ -111,7 +113,8 @@ module Gloo
111
113
  # Show busy folders: those with the most files.
112
114
  #
113
115
  def msg_show_busy_folders
114
- o = Gloo::Utils::Stats.new( path_value, types_value, skip_list )
116
+ o = GlooLang::Utils::Stats.new(
117
+ @engine, path_value, types_value, skip_list )
115
118
  o.busy_folders
116
119
  end
117
120
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Objs
9
- class Play < Gloo::Core::Obj
9
+ class Play < GlooLang::Core::Obj
10
10
 
11
11
  KEYWORD = 'play'.freeze
12
12
  KEYWORD_SHORT = 'play'.freeze
@@ -7,7 +7,7 @@ require 'erb'
7
7
 
8
8
  module Gloo
9
9
  module Objs
10
- class Say < Gloo::Core::Obj
10
+ class Say < GlooLang::Core::Obj
11
11
 
12
12
  KEYWORD = 'say'.freeze
13
13
  KEYWORD_SHORT = 'say'.freeze
@@ -68,7 +68,7 @@ module Gloo
68
68
  # for default configurations.
69
69
  #
70
70
  def add_default_children
71
- fac = $engine.factory
71
+ fac = @engine.factory
72
72
  fac.create_string VOICE, '', self
73
73
  fac.create_string MSG, DEFAULT_MSG, self
74
74
  end
@@ -7,7 +7,7 @@ require 'tty-pager'
7
7
 
8
8
  module Gloo
9
9
  module Objs
10
- class FileHandle < Gloo::Core::Obj
10
+ class FileHandle < GlooLang::Core::Obj
11
11
 
12
12
  KEYWORD = 'file'.freeze
13
13
  KEYWORD_SHORT = 'dir'.freeze
@@ -47,7 +47,7 @@ module Gloo
47
47
  def msg_open
48
48
  return unless value && File.exist?( value )
49
49
 
50
- cmd = Gloo::Core::GlooSystem.open_for_platform
50
+ cmd = GlooLang::Core::GlooSystem.open_for_platform
51
51
  cmd_with_param = "#{cmd} \"#{value}\""
52
52
  `#{cmd_with_param}`
53
53
  end
@@ -79,11 +79,11 @@ module Gloo
79
79
 
80
80
  data = File.read( value )
81
81
  if @params&.token_count&.positive?
82
- pn = Gloo::Core::Pn.new @params.first
82
+ pn = GlooLang::Core::Pn.new( @engine, @params.first )
83
83
  o = pn.resolve
84
84
  o.set_value data
85
85
  else
86
- $engine.heap.it.set_to data
86
+ @engine.heap.it.set_to data
87
87
  end
88
88
  end
89
89
 
@@ -95,7 +95,7 @@ module Gloo
95
95
  return unless value
96
96
 
97
97
  if @params&.token_count&.positive?
98
- expr = Gloo::Expr::Expression.new( @params.tokens )
98
+ expr = GlooLang::Expr::Expression.new( @engine, @params.tokens )
99
99
  data = expr.evaluate
100
100
  end
101
101
  File.write( value, data )
@@ -106,7 +106,7 @@ module Gloo
106
106
  #
107
107
  def msg_check_exists
108
108
  result = File.exist? value
109
- $engine.heap.it.set_to result
109
+ @engine.heap.it.set_to result
110
110
  end
111
111
 
112
112
  #
@@ -114,7 +114,7 @@ module Gloo
114
114
  #
115
115
  def msg_check_is_file
116
116
  result = File.file? value
117
- $engine.heap.it.set_to result
117
+ @engine.heap.it.set_to result
118
118
  end
119
119
 
120
120
  #
@@ -122,7 +122,7 @@ module Gloo
122
122
  #
123
123
  def msg_check_is_dir
124
124
  result = File.directory? value
125
- $engine.heap.it.set_to result
125
+ @engine.heap.it.set_to result
126
126
  end
127
127
 
128
128
  #
@@ -130,7 +130,7 @@ module Gloo
130
130
  #
131
131
  def msg_find_match
132
132
  result = !Dir.glob( value ).empty?
133
- $engine.heap.it.set_to result
133
+ @engine.heap.it.set_to result
134
134
  end
135
135
 
136
136
  end
@@ -7,7 +7,7 @@ require 'net/ssh'
7
7
 
8
8
  module Gloo
9
9
  module Objs
10
- class SshExec < Gloo::Core::Obj
10
+ class SshExec < GlooLang::Core::Obj
11
11
 
12
12
  KEYWORD = 'ssh_exec'.freeze
13
13
  KEYWORD_SHORT = 'ssh'.freeze
@@ -50,7 +50,7 @@ module Gloo
50
50
  # for default configurations.
51
51
  #
52
52
  def add_default_children
53
- fac = $engine.factory
53
+ fac = @engine.factory
54
54
  fac.create_string HOST, DEFAULT_HOST, self
55
55
  fac.create_string CMD, nil, self
56
56
  fac.create_string RESULT, nil, self
@@ -73,7 +73,7 @@ module Gloo
73
73
  def msg_run
74
74
  h = host_value
75
75
  unless h
76
- $engine.err HOST_REQUIRED_ERR
76
+ @engine.err HOST_REQUIRED_ERR
77
77
  return
78
78
  end
79
79
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Objs
9
- class System < Gloo::Core::Obj
9
+ class System < GlooLang::Core::Obj
10
10
 
11
11
  KEYWORD = 'system'.freeze
12
12
  KEYWORD_SHORT = 'sys'.freeze
@@ -81,7 +81,7 @@ module Gloo
81
81
  # for default configurations.
82
82
  #
83
83
  def add_default_children
84
- fac = $engine.factory
84
+ fac = @engine.factory
85
85
  fac.create_string CMD, DEFAULT_CMD, self
86
86
  fac.create_bool GET_OUTPUT, true, self
87
87
  fac.create_string RESULT, nil, self
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Verbs
9
- class Alert < Gloo::Core::Verb
9
+ class Alert < GlooLang::Core::Verb
10
10
 
11
11
  KEYWORD = 'alert'.freeze
12
12
  KEYWORD_SHORT = '!'.freeze
@@ -19,18 +19,18 @@ module Gloo
19
19
  #
20
20
  def run
21
21
  unless @tokens.token_count > 1
22
- $engine.err MISSING_EXPR_ERR
22
+ @engine.err MISSING_EXPR_ERR
23
23
  return
24
24
  end
25
25
 
26
- expr = Gloo::Expr::Expression.new( @tokens.params )
26
+ expr = GlooLang::Expr::Expression.new( @engine, @tokens.params )
27
27
  result = expr.evaluate
28
28
 
29
29
  if result
30
- $engine.heap.it.set_to result
30
+ @engine.heap.it.set_to result
31
31
  post_alert result
32
32
  else
33
- $engine.err NO_RESULT_ERR
33
+ @engine.err NO_RESULT_ERR
34
34
  end
35
35
  end
36
36
 
@@ -59,8 +59,8 @@ module Gloo
59
59
  # Notice is not posted if we're in quiet mode.
60
60
  #
61
61
  def post_alert( msg )
62
- $log.info msg
63
- return if $engine.args.quiet?
62
+ @engine.log.info msg
63
+ return if @engine.args.quiet?
64
64
 
65
65
  post_osx msg
66
66
  end
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Verbs
9
- class Beep < Gloo::Core::Verb
9
+ class Beep < GlooLang::Core::Verb
10
10
 
11
11
  KEYWORD = 'beep'.freeze
12
12
  KEYWORD_SHORT = 'b'.freeze
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Verbs
9
- class Cls < Gloo::Core::Verb
9
+ class Cls < GlooLang::Core::Verb
10
10
 
11
11
  KEYWORD = 'cls'.freeze
12
12
  KEYWORD_SHORT = 'cls'.freeze
@@ -15,7 +15,7 @@ module Gloo
15
15
  # Run the verb.
16
16
  #
17
17
  def run
18
- $engine&.clear_screen
18
+ @engine.platform&.clear_screen
19
19
  end
20
20
 
21
21
  #
@@ -6,7 +6,7 @@
6
6
 
7
7
  module Gloo
8
8
  module Verbs
9
- class Help < Gloo::Core::Verb
9
+ class Help < GlooLang::Core::Verb
10
10
 
11
11
  KEYWORD = 'help'.freeze
12
12
  KEYWORD_SHORT = '?'.freeze
@@ -30,80 +30,8 @@ module Gloo
30
30
  # Run the verb.
31
31
  #
32
32
  def run
33
- opts = @tokens.second if @tokens
34
- opts = opts.strip.downcase if opts
35
-
36
- if opts
37
- dispatch opts
38
- else
39
- $engine.help.page_topic DEFAULT_HELP
40
- end
41
- end
42
-
43
- #
44
- # Get the text for the list of verbs.
45
- #
46
- def get_verb_list
47
- out = "Verbs:\n"
48
- str = ''
49
- verbs = $engine.dictionary.get_verbs.sort_by( &:keyword )
50
- verbs.each_with_index do |v, i|
51
- cut = v.keyword_shortcut.ljust( 5, ' ' )
52
- str << " #{cut} #{v.keyword.ljust( 20, ' ' )}"
53
- if ( ( i + 1 ) % 3 ).zero?
54
- out << "#{str}\n"
55
- str = ''
56
- end
57
- end
58
-
59
- return out
60
- end
61
-
62
- #
63
- # Lookup the opts in the dispatch table.
64
- #
65
- def lookup_opts( opts )
66
- return DISPATCH[ opts.to_sym ]
67
- end
68
-
69
- #
70
- # Get the text for the list of verbs.
71
- #
72
- def get_obj_list
73
- out = "Object Types:\n"
74
- str = ''
75
- objs = $engine.dictionary.get_obj_types.sort_by( &:typename )
76
- objs.each_with_index do |o, i|
77
- name = o.typename
78
- if o.short_typename != o.typename
79
- name = "#{name} (#{o.short_typename})"
80
- end
81
- str << " #{name.ljust( 30, ' ' )}"
82
- if ( ( i + 1 ) % 4 ).zero?
83
- out << "#{str}\n"
84
- str = ''
85
- end
86
- end
87
-
88
- return out
89
- end
90
-
91
- #
92
- # Get the list of help topics.
93
- #
94
- def get_topics
95
- out = "Help Topics:\n"
96
- str = ''
97
- objs = $engine.help.topics.keys.sort
98
- objs.each_with_index do |o, i|
99
- str << " #{o.ljust( 30, ' ' )}"
100
- if ( ( i + 1 ) % 4 ).zero?
101
- out << "#{str}\n"
102
- str = ''
103
- end
104
- end
105
-
106
- return out
33
+ data = "\n For documentation use the gloo website. \n\n"
34
+ @engine.log.show data
107
35
  end
108
36
 
109
37
  #
@@ -126,137 +54,27 @@ module Gloo
126
54
 
127
55
  private
128
56
 
129
- #
130
- # Report an error with the inline help.
131
- #
132
- def report_help_error( opts )
133
- $engine.err "#{HELP_NOT_FOUND_ERR} '#{opts}'"
134
- end
135
-
136
- #
137
- # Dispatch the help to the right place.
138
- #
139
- def dispatch( opts )
140
- return if dispatch_help_page( opts )
141
-
142
- $log.debug 'looking for built in help topic'
143
- cmd = DISPATCH[ opts.to_sym ]
144
- if cmd
145
- $log.debug 'found help index'
146
- send cmd
147
- else
148
- $log.debug 'looking for entity help'
149
- entity_help opts
150
- end
151
- rescue
152
- report_help_error opts
153
- end
154
-
155
- #
156
- # Dispatch to a help page if we can find one.
157
- #
158
- def dispatch_help_page( opts )
159
- if $engine.help.topic? opts
160
- $log.debug 'found expanded help topic'
161
- $engine.help.page_topic opts
162
- return true
163
- end
164
-
165
- key = $engine.dictionary.lookup_keyword opts
166
- if $engine.help.topic? key
167
- $log.debug 'found expanded help topic'
168
- $engine.help.page_topic key
169
- return true
170
- end
171
-
172
- return false
173
- end
174
-
175
57
  #
176
58
  # Write output to it and show it unless we are in
177
59
  # silent mode.
178
60
  #
179
61
  def show_output( out )
180
- $engine.heap.it.set_to out
181
- puts out unless $engine.args.quiet?
182
- end
183
-
184
- #
185
- # List all help topics (articles)
186
- #
187
- def show_topics
188
- out = self.get_topics
189
- show_output out
190
- end
191
-
192
- #
193
- # Dispatch the help command to a verb or object
194
- # if we can find one matching the request.
195
- #
196
- def entity_help( opts )
197
- return if try_verb_help opts
198
- return if try_object_help opts
199
-
200
- report_help_error opts
201
- end
202
-
203
- #
204
- # See if there is a verb we can show help
205
- # information about.
206
- #
207
- def try_verb_help( opts )
208
- if $engine.dictionary.verb?( opts )
209
- t = $engine.dictionary.find_verb( opts )
210
- out = t.send 'help'
211
- show_output out
212
- return true
213
- end
214
-
215
- return false
216
- end
217
-
218
- #
219
- # See if there is a verb we can show help
220
- # information about.
221
- #
222
- def try_object_help( opts )
223
- if $engine.dictionary.obj?( opts )
224
- t = $engine.dictionary.find_obj( opts )
225
- out = t.send 'help'
226
- show_output out
227
- return true
228
- end
229
-
230
- return false
62
+ @engine.heap.it.set_to out
63
+ puts out unless @engine.args.quiet?
231
64
  end
232
65
 
233
66
  #
234
67
  # Show application settings.
235
68
  #
236
69
  def show_settings
237
- $settings.show
70
+ @engine.settings.show
238
71
  end
239
72
 
240
73
  #
241
74
  # Show all keywords: verbs and objects.
242
75
  #
243
76
  def show_keywords
244
- $engine.dictionary.show_keywords
245
- end
246
-
247
- #
248
- # List the verbs
249
- #
250
- def show_verbs
251
- show_output get_verb_list
252
- end
253
-
254
- #
255
- # List the object types
256
- #
257
- def show_objs
258
- out = self.get_obj_list
259
- show_output out
77
+ @engine.dictionary.show_keywords
260
78
  end
261
79
 
262
80
  end
@@ -4,9 +4,9 @@
4
4
  # Show the current application version.
5
5
  #
6
6
 
7
- module Gloo
7
+ module GlooLang
8
8
  module Verbs
9
- class Version < Gloo::Core::Verb
9
+ class Version < GlooLang::Core::Verb
10
10
 
11
11
  KEYWORD = 'version'.freeze
12
12
  KEYWORD_SHORT = 'v'.freeze
@@ -15,7 +15,7 @@ module Gloo
15
15
  # Run the verb.
16
16
  #
17
17
  def run
18
- $log.show Gloo::App::Info.display_title
18
+ @engine.log.show GlooLang::App::Info.full_version
19
19
  end
20
20
 
21
21
  #
data/lib/gloo.rb CHANGED
@@ -12,6 +12,10 @@ module Gloo
12
12
  def self.run
13
13
  params = []
14
14
  ( params << '--cli' ) if ARGV.count.zero?
15
- Gloo::App::Engine.new( params ).start
15
+
16
+ platform = Gloo::App::Platform.new
17
+ context = GlooLang::App::EngineContext.new(
18
+ params, platform, Gloo::App::Log, nil )
19
+ GlooLang::App::Engine.new( context ).start
16
20
  end
17
21
  end
data/lib/run.rb CHANGED
@@ -11,4 +11,8 @@ require File.join( path, 'dependencies.rb' )
11
11
 
12
12
  params = []
13
13
  ( params << '--cli' ) if ARGV.count.zero?
14
- Gloo::App::Engine.new( params ).start
14
+
15
+ platform = Gloo::App::Platform.new
16
+ context = GlooLang::App::EngineContext.new(
17
+ params, platform, Gloo::App::Log, nil )
18
+ GlooLang::App::Engine.new( context ).start