gloo 0.7.7 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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 +15 -6
  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/dev/git.rb +7 -7
  23. data/lib/gloo/objs/dev/stats.rb +8 -5
  24. data/lib/gloo/objs/snd/play.rb +1 -1
  25. data/lib/gloo/objs/snd/say.rb +2 -2
  26. data/lib/gloo/objs/system/file_handle.rb +9 -9
  27. data/lib/gloo/objs/system/ssh_exec.rb +3 -3
  28. data/lib/gloo/objs/system/system.rb +2 -2
  29. data/lib/gloo/verbs/alert.rb +7 -7
  30. data/lib/gloo/verbs/beep.rb +1 -1
  31. data/lib/gloo/verbs/cls.rb +2 -2
  32. data/lib/gloo/verbs/help.rb +7 -189
  33. data/lib/gloo/verbs/version.rb +3 -3
  34. data/lib/gloo.rb +5 -1
  35. data/lib/run.rb +5 -1
  36. metadata +43 -221
  37. data/Gemfile.lock +0 -168
  38. data/lib/gloo/app/args.rb +0 -112
  39. data/lib/gloo/app/engine.rb +0 -230
  40. data/lib/gloo/app/help.rb +0 -156
  41. data/lib/gloo/app/mode.rb +0 -27
  42. data/lib/gloo/app/settings.rb +0 -186
  43. data/lib/gloo/convert/converter.rb +0 -35
  44. data/lib/gloo/convert/string_to_datetime.rb +0 -21
  45. data/lib/gloo/convert/string_to_decimal.rb +0 -20
  46. data/lib/gloo/convert/string_to_integer.rb +0 -20
  47. data/lib/gloo/core/baseo.rb +0 -30
  48. data/lib/gloo/core/dictionary.rb +0 -181
  49. data/lib/gloo/core/error.rb +0 -61
  50. data/lib/gloo/core/event_manager.rb +0 -44
  51. data/lib/gloo/core/factory.rb +0 -210
  52. data/lib/gloo/core/gloo_system.rb +0 -266
  53. data/lib/gloo/core/heap.rb +0 -52
  54. data/lib/gloo/core/here.rb +0 -36
  55. data/lib/gloo/core/it.rb +0 -36
  56. data/lib/gloo/core/literal.rb +0 -30
  57. data/lib/gloo/core/obj.rb +0 -303
  58. data/lib/gloo/core/obj_finder.rb +0 -30
  59. data/lib/gloo/core/op.rb +0 -40
  60. data/lib/gloo/core/parser.rb +0 -59
  61. data/lib/gloo/core/pn.rb +0 -188
  62. data/lib/gloo/core/tokens.rb +0 -165
  63. data/lib/gloo/core/verb.rb +0 -86
  64. data/lib/gloo/exec/action.rb +0 -48
  65. data/lib/gloo/exec/dispatch.rb +0 -40
  66. data/lib/gloo/exec/exec_env.rb +0 -74
  67. data/lib/gloo/exec/runner.rb +0 -45
  68. data/lib/gloo/exec/script.rb +0 -49
  69. data/lib/gloo/exec/stack.rb +0 -78
  70. data/lib/gloo/expr/expression.rb +0 -118
  71. data/lib/gloo/expr/l_boolean.rb +0 -36
  72. data/lib/gloo/expr/l_decimal.rb +0 -39
  73. data/lib/gloo/expr/l_integer.rb +0 -37
  74. data/lib/gloo/expr/l_string.rb +0 -58
  75. data/lib/gloo/expr/op_div.rb +0 -22
  76. data/lib/gloo/expr/op_minus.rb +0 -22
  77. data/lib/gloo/expr/op_mult.rb +0 -22
  78. data/lib/gloo/expr/op_plus.rb +0 -24
  79. data/lib/gloo/help/app/application.txt +0 -22
  80. data/lib/gloo/help/app/configuration.txt +0 -7
  81. data/lib/gloo/help/app/default_help.txt +0 -14
  82. data/lib/gloo/help/app/logging.txt +0 -16
  83. data/lib/gloo/help/core/color.txt +0 -31
  84. data/lib/gloo/help/core/error.txt +0 -33
  85. data/lib/gloo/help/core/events.txt +0 -21
  86. data/lib/gloo/help/core/gloo_system.txt +0 -57
  87. data/lib/gloo/help/core/here.txt +0 -30
  88. data/lib/gloo/help/core/it.txt +0 -23
  89. data/lib/gloo/help/core/ops.txt +0 -16
  90. data/lib/gloo/help/core/pathname.txt +0 -29
  91. data/lib/gloo/help/objs/basic/alias.txt +0 -36
  92. data/lib/gloo/help/objs/basic/boolean.txt +0 -28
  93. data/lib/gloo/help/objs/basic/container.txt +0 -33
  94. data/lib/gloo/help/objs/basic/decimal.txt +0 -28
  95. data/lib/gloo/help/objs/basic/integer.txt +0 -27
  96. data/lib/gloo/help/objs/basic/script.txt +0 -29
  97. data/lib/gloo/help/objs/basic/string.txt +0 -28
  98. data/lib/gloo/help/objs/basic/text.txt +0 -27
  99. data/lib/gloo/help/objs/basic/untyped.txt +0 -22
  100. data/lib/gloo/help/objs/cli/banner.txt +0 -49
  101. data/lib/gloo/help/objs/cli/bar.txt +0 -37
  102. data/lib/gloo/help/objs/cli/colorize.txt +0 -33
  103. data/lib/gloo/help/objs/cli/confirm.txt +0 -26
  104. data/lib/gloo/help/objs/cli/menu.txt +0 -44
  105. data/lib/gloo/help/objs/cli/menu_item.txt +0 -26
  106. data/lib/gloo/help/objs/cli/pastel.txt +0 -43
  107. data/lib/gloo/help/objs/cli/prompt.txt +0 -27
  108. data/lib/gloo/help/objs/cli/select.txt +0 -34
  109. data/lib/gloo/help/objs/ctrl/each.txt +0 -48
  110. data/lib/gloo/help/objs/ctrl/repeat.txt +0 -38
  111. data/lib/gloo/help/objs/data/markdown.txt +0 -25
  112. data/lib/gloo/help/objs/data/mysql.txt +0 -40
  113. data/lib/gloo/help/objs/data/query.txt +0 -37
  114. data/lib/gloo/help/objs/data/sqlite.txt +0 -26
  115. data/lib/gloo/help/objs/data/table.txt +0 -46
  116. data/lib/gloo/help/objs/dev/git_repo.txt +0 -36
  117. data/lib/gloo/help/objs/dev/stats.txt +0 -36
  118. data/lib/gloo/help/objs/dt/date.txt +0 -23
  119. data/lib/gloo/help/objs/dt/datetime.txt +0 -24
  120. data/lib/gloo/help/objs/dt/time.txt +0 -23
  121. data/lib/gloo/help/objs/ror/erb.txt +0 -37
  122. data/lib/gloo/help/objs/ror/eval.txt +0 -24
  123. data/lib/gloo/help/objs/snd/play.txt +0 -23
  124. data/lib/gloo/help/objs/snd/say.txt +0 -28
  125. data/lib/gloo/help/objs/system/file.txt +0 -48
  126. data/lib/gloo/help/objs/system/ssh_exec.txt +0 -30
  127. data/lib/gloo/help/objs/system/system.txt +0 -32
  128. data/lib/gloo/help/objs/web/http_get.txt +0 -35
  129. data/lib/gloo/help/objs/web/http_post.txt +0 -34
  130. data/lib/gloo/help/objs/web/json.txt +0 -34
  131. data/lib/gloo/help/objs/web/slack.txt +0 -33
  132. data/lib/gloo/help/objs/web/teams.txt +0 -30
  133. data/lib/gloo/help/objs/web/uri.txt +0 -38
  134. data/lib/gloo/help/verbs/alert.txt +0 -33
  135. data/lib/gloo/help/verbs/beep.txt +0 -25
  136. data/lib/gloo/help/verbs/cls.txt +0 -24
  137. data/lib/gloo/help/verbs/context.txt +0 -43
  138. data/lib/gloo/help/verbs/create.txt +0 -33
  139. data/lib/gloo/help/verbs/execute.txt +0 -27
  140. data/lib/gloo/help/verbs/help.txt +0 -34
  141. data/lib/gloo/help/verbs/if.txt +0 -37
  142. data/lib/gloo/help/verbs/list.txt +0 -34
  143. data/lib/gloo/help/verbs/load.txt +0 -38
  144. data/lib/gloo/help/verbs/move.txt +0 -42
  145. data/lib/gloo/help/verbs/put.txt +0 -38
  146. data/lib/gloo/help/verbs/quit.txt +0 -25
  147. data/lib/gloo/help/verbs/run.txt +0 -41
  148. data/lib/gloo/help/verbs/save.txt +0 -26
  149. data/lib/gloo/help/verbs/show.txt +0 -30
  150. data/lib/gloo/help/verbs/tell.txt +0 -34
  151. data/lib/gloo/help/verbs/unless.txt +0 -38
  152. data/lib/gloo/help/verbs/version.txt +0 -32
  153. data/lib/gloo/help/verbs/wait.txt +0 -29
  154. data/lib/gloo/objs/basic/alias.rb +0 -78
  155. data/lib/gloo/objs/basic/boolean.rb +0 -120
  156. data/lib/gloo/objs/basic/container.rb +0 -76
  157. data/lib/gloo/objs/basic/decimal.rb +0 -76
  158. data/lib/gloo/objs/basic/integer.rb +0 -73
  159. data/lib/gloo/objs/basic/script.rb +0 -99
  160. data/lib/gloo/objs/basic/string.rb +0 -77
  161. data/lib/gloo/objs/basic/text.rb +0 -87
  162. data/lib/gloo/objs/basic/untyped.rb +0 -41
  163. data/lib/gloo/objs/ctrl/each.rb +0 -279
  164. data/lib/gloo/objs/ctrl/repeat.rb +0 -108
  165. data/lib/gloo/objs/data/markdown.rb +0 -84
  166. data/lib/gloo/objs/data/mysql.rb +0 -192
  167. data/lib/gloo/objs/data/query.rb +0 -176
  168. data/lib/gloo/objs/data/sqlite.rb +0 -159
  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
@@ -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