gloo-lang 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/gloo-lang.gemspec +1 -3
  6. data/lib/VERSION +1 -1
  7. data/lib/gloo_lang/app/engine.rb +47 -12
  8. data/lib/gloo_lang/app/log.rb +42 -3
  9. data/lib/gloo_lang/core/heap.rb +2 -2
  10. metadata +10 -81
  11. data/Gemfile.lock +0 -68
  12. data/lib/gloo_lang/app/help.rb +0 -118
  13. data/lib/gloo_lang/help/app/application.txt +0 -22
  14. data/lib/gloo_lang/help/app/configuration.txt +0 -7
  15. data/lib/gloo_lang/help/app/default_help.txt +0 -14
  16. data/lib/gloo_lang/help/app/logging.txt +0 -16
  17. data/lib/gloo_lang/help/core/color.txt +0 -31
  18. data/lib/gloo_lang/help/core/error.txt +0 -33
  19. data/lib/gloo_lang/help/core/events.txt +0 -21
  20. data/lib/gloo_lang/help/core/gloo_system.txt +0 -57
  21. data/lib/gloo_lang/help/core/here.txt +0 -30
  22. data/lib/gloo_lang/help/core/it.txt +0 -23
  23. data/lib/gloo_lang/help/core/ops.txt +0 -16
  24. data/lib/gloo_lang/help/core/pathname.txt +0 -29
  25. data/lib/gloo_lang/help/objs/basic/alias.txt +0 -36
  26. data/lib/gloo_lang/help/objs/basic/boolean.txt +0 -28
  27. data/lib/gloo_lang/help/objs/basic/container.txt +0 -33
  28. data/lib/gloo_lang/help/objs/basic/decimal.txt +0 -28
  29. data/lib/gloo_lang/help/objs/basic/integer.txt +0 -27
  30. data/lib/gloo_lang/help/objs/basic/script.txt +0 -29
  31. data/lib/gloo_lang/help/objs/basic/string.txt +0 -28
  32. data/lib/gloo_lang/help/objs/basic/text.txt +0 -27
  33. data/lib/gloo_lang/help/objs/basic/untyped.txt +0 -22
  34. data/lib/gloo_lang/help/objs/cli/banner.txt +0 -49
  35. data/lib/gloo_lang/help/objs/cli/bar.txt +0 -37
  36. data/lib/gloo_lang/help/objs/cli/colorize.txt +0 -33
  37. data/lib/gloo_lang/help/objs/cli/confirm.txt +0 -26
  38. data/lib/gloo_lang/help/objs/cli/menu.txt +0 -44
  39. data/lib/gloo_lang/help/objs/cli/menu_item.txt +0 -26
  40. data/lib/gloo_lang/help/objs/cli/pastel.txt +0 -43
  41. data/lib/gloo_lang/help/objs/cli/prompt.txt +0 -27
  42. data/lib/gloo_lang/help/objs/cli/select.txt +0 -34
  43. data/lib/gloo_lang/help/objs/ctrl/each.txt +0 -48
  44. data/lib/gloo_lang/help/objs/ctrl/repeat.txt +0 -38
  45. data/lib/gloo_lang/help/objs/data/markdown.txt +0 -25
  46. data/lib/gloo_lang/help/objs/data/mysql.txt +0 -40
  47. data/lib/gloo_lang/help/objs/data/query.txt +0 -37
  48. data/lib/gloo_lang/help/objs/data/sqlite.txt +0 -26
  49. data/lib/gloo_lang/help/objs/data/table.txt +0 -46
  50. data/lib/gloo_lang/help/objs/dev/git_repo.txt +0 -36
  51. data/lib/gloo_lang/help/objs/dev/stats.txt +0 -36
  52. data/lib/gloo_lang/help/objs/dt/date.txt +0 -23
  53. data/lib/gloo_lang/help/objs/dt/datetime.txt +0 -24
  54. data/lib/gloo_lang/help/objs/dt/time.txt +0 -23
  55. data/lib/gloo_lang/help/objs/ror/erb.txt +0 -37
  56. data/lib/gloo_lang/help/objs/ror/eval.txt +0 -24
  57. data/lib/gloo_lang/help/objs/snd/play.txt +0 -23
  58. data/lib/gloo_lang/help/objs/snd/say.txt +0 -28
  59. data/lib/gloo_lang/help/objs/system/file.txt +0 -48
  60. data/lib/gloo_lang/help/objs/system/ssh_exec.txt +0 -30
  61. data/lib/gloo_lang/help/objs/system/system.txt +0 -32
  62. data/lib/gloo_lang/help/objs/web/http_get.txt +0 -35
  63. data/lib/gloo_lang/help/objs/web/http_post.txt +0 -34
  64. data/lib/gloo_lang/help/objs/web/json.txt +0 -34
  65. data/lib/gloo_lang/help/objs/web/slack.txt +0 -33
  66. data/lib/gloo_lang/help/objs/web/teams.txt +0 -30
  67. data/lib/gloo_lang/help/objs/web/uri.txt +0 -38
  68. data/lib/gloo_lang/help/verbs/alert.txt +0 -33
  69. data/lib/gloo_lang/help/verbs/beep.txt +0 -25
  70. data/lib/gloo_lang/help/verbs/cls.txt +0 -24
  71. data/lib/gloo_lang/help/verbs/context.txt +0 -43
  72. data/lib/gloo_lang/help/verbs/create.txt +0 -33
  73. data/lib/gloo_lang/help/verbs/execute.txt +0 -27
  74. data/lib/gloo_lang/help/verbs/help.txt +0 -34
  75. data/lib/gloo_lang/help/verbs/if.txt +0 -37
  76. data/lib/gloo_lang/help/verbs/list.txt +0 -34
  77. data/lib/gloo_lang/help/verbs/load.txt +0 -38
  78. data/lib/gloo_lang/help/verbs/move.txt +0 -42
  79. data/lib/gloo_lang/help/verbs/put.txt +0 -38
  80. data/lib/gloo_lang/help/verbs/quit.txt +0 -25
  81. data/lib/gloo_lang/help/verbs/run.txt +0 -41
  82. data/lib/gloo_lang/help/verbs/save.txt +0 -26
  83. data/lib/gloo_lang/help/verbs/show.txt +0 -30
  84. data/lib/gloo_lang/help/verbs/tell.txt +0 -34
  85. data/lib/gloo_lang/help/verbs/unless.txt +0 -38
  86. data/lib/gloo_lang/help/verbs/version.txt +0 -32
  87. data/lib/gloo_lang/help/verbs/wait.txt +0 -29
  88. data/lib/gloo_lang/verbs/help.rb +0 -264
  89. data/lib/gloo_lang/verbs/version.rb +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60aa43dd1dedbfb551e5e3a5df9e85faa850bde257385062faf364bc757c1f48
4
- data.tar.gz: 153fc30d28490c8e55e16e4e9432e552344e31940627b40cc0b2b549c89fda95
3
+ metadata.gz: b2fef4d21ce7b2ba45d4598fa24282c703581bbe1e40ea07f8e8063bf66a4b1b
4
+ data.tar.gz: dbd1b3b25f998023baa7c93044618f33bdca46de5ff068b2efd2093d156c5393
5
5
  SHA512:
6
- metadata.gz: 2f5cf337061911c08ba2c4b58be007008912c90387ddce1cd2007303dd6b70609b97b6aec8524a0d0a992010a70d3e6a393e8a931da8584a64fbcb8ecaf689ed
7
- data.tar.gz: 460d792ef6934ded17ff3e6a60ccba9c422219b3e93ff353d4c631d5f4bfba19c373845eb58cf4cea82a26f4a401082318793aa2473dc9ac23b3ef81502254ff
6
+ metadata.gz: 9b859bb73c0b74b901ca5aaf2fba754c70d9b567c8725afa1ed20260f547b68264a9af8e96f391e94edd955a002de01417fbacc154f850309a2134b7f2d6ee81
7
+ data.tar.gz: b5cc88f9740a6766051579ea185b94b308f6628a61e13a1259871bd49350bb90acd9544ee47e3085c53daf33911ed312acc682373b244bd6b361e307b987be75
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
  *.log
11
11
  test/gloo/debug/*
12
12
  .DS_Store
13
+ Gemfile.lock
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ gloo-gem
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-3.0.2
data/gloo-lang.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ['lib']
25
25
 
26
26
  spec.add_development_dependency 'bundler', '~> 2.2.22'
27
- spec.add_development_dependency 'minitest', '~> 5.1'
27
+ spec.add_development_dependency 'minitest', '~> 5.1', '>= 5.14.2'
28
28
  spec.add_development_dependency "rake", '~> 13.0', '>= 13.0.1'
29
29
 
30
30
  spec.add_dependency "activesupport", '~> 6.1', ">= 6.1.4.6"
@@ -33,6 +33,4 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'openssl', '~> 2.1', '>= 2.1.0'
34
34
  spec.add_dependency 'net-ssh', '~> 6.1', '>= 6.1.0'
35
35
  spec.add_dependency 'tty-platform', '~> 0.3', '>= 0.3.0'
36
- # spec.add_dependency 'mysql2', '~> 0.5', '>= 0.5.3'
37
- # spec.add_dependency 'sqlite3', '~> 1.4', '>= 1.4.2'
38
36
  end
data/lib/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
@@ -15,7 +15,7 @@ module GlooLang
15
15
  attr_reader :args, :mode, :running, :platform,
16
16
  :dictionary, :parser, :heap, :factory
17
17
  attr_accessor :last_cmd, :persist_man, :event_manager,
18
- :exec_env, :help, :converter
18
+ :exec_env, :converter
19
19
 
20
20
  #
21
21
  # Set up the engine with basic elements.
@@ -52,13 +52,48 @@ module GlooLang
52
52
  @event_manager = GlooLang::Core::EventManager.new( self )
53
53
 
54
54
  @exec_env = GlooLang::Exec::ExecEnv.new( self )
55
- @help = GlooLang::App::Help.new( self )
56
55
  @converter = GlooLang::Convert::Converter.new( self )
57
56
 
58
57
  @log.debug 'the engine has started'
59
58
  run_mode
60
59
  end
61
60
 
61
+ # ---------------------------------------------------------------------
62
+ # Serialization
63
+ # ---------------------------------------------------------------------
64
+
65
+ #
66
+ # Prepare for serialization by removing any file references.
67
+ # Without this, the engine cannot be serialized.
68
+ #
69
+ def prep_serialize
70
+ @log.prep_serialize
71
+ end
72
+
73
+ #
74
+ # Get the serialized version of this Engine.
75
+ #
76
+ def serialize
77
+ prep_serialize
78
+ Marshal::dump( self )
79
+ end
80
+
81
+ #
82
+ # Deserialize the Engine data.
83
+ #
84
+ def self.deserialize data
85
+ e = Marshal::load( data )
86
+ e.restore_after_deserialization
87
+ return e
88
+ end
89
+
90
+ #
91
+ # Restore the engine after deserialization.
92
+ #
93
+ def restore_after_deserialization
94
+ @log.restore_after_deserialization
95
+ end
96
+
62
97
  # ---------------------------------------------------------------------
63
98
  # Run
64
99
  # ---------------------------------------------------------------------
@@ -71,10 +106,10 @@ module GlooLang
71
106
 
72
107
  if @mode == Mode::VERSION
73
108
  run_version
74
- elsif @mode == Mode::HELP
75
- show_help_and_quit
76
109
  elsif @mode == Mode::SCRIPT
77
110
  run_files
111
+ elsif @mode == Mode::EMBED
112
+ run_keep_alive
78
113
  else
79
114
  run
80
115
  end
@@ -105,6 +140,14 @@ module GlooLang
105
140
  quit
106
141
  end
107
142
 
143
+ #
144
+ # Run in Embedded mode, which means we'll
145
+ # start the engine, but wait for external inputs.
146
+ #
147
+ def run_keep_alive
148
+ @log.debug 'Running in Embedded mode...'
149
+ end
150
+
108
151
  #
109
152
  # Get the setting for the start_with file and open it.
110
153
  #
@@ -171,14 +214,6 @@ module GlooLang
171
214
  quit
172
215
  end
173
216
 
174
- #
175
- # Show the help information and then quit.
176
- #
177
- def show_help_and_quit
178
- @help.show_app_help
179
- quit
180
- end
181
-
182
217
  # ---------------------------------------------------------------------
183
218
  # Error Handling
184
219
  # ---------------------------------------------------------------------
@@ -12,6 +12,10 @@ module GlooLang
12
12
  attr_accessor :quiet
13
13
  attr_reader :logger
14
14
 
15
+ # ---------------------------------------------------------------------
16
+ # Initialization
17
+ # ---------------------------------------------------------------------
18
+
15
19
  #
16
20
  # Set up a logger.
17
21
  # If quiet is true, then message are written to the log
@@ -19,14 +23,26 @@ module GlooLang
19
23
  #
20
24
  def initialize( engine, quiet=true )
21
25
  @engine = engine
22
- f = File.join( @engine.settings.log_path, 'gloo.log' )
23
- @logger = Logger.new( f )
24
- @logger.level = Logger::DEBUG
25
26
  @quite = quiet
26
27
 
28
+ create_logger
29
+
27
30
  debug 'log intialized...'
28
31
  end
29
32
 
33
+ #
34
+ # Create the default [file] logger.
35
+ #
36
+ def create_logger
37
+ f = File.join( @engine.settings.log_path, 'gloo.log' )
38
+ @logger = Logger.new( f )
39
+ @logger.level = Logger::DEBUG
40
+ end
41
+
42
+ # ---------------------------------------------------------------------
43
+ # Standard Output
44
+ # ---------------------------------------------------------------------
45
+
30
46
  #
31
47
  # Show a message unless we're in quite mode.
32
48
  #
@@ -34,6 +50,10 @@ module GlooLang
34
50
  puts msg unless @quiet
35
51
  end
36
52
 
53
+ # ---------------------------------------------------------------------
54
+ # Logging functions
55
+ # ---------------------------------------------------------------------
56
+
37
57
  #
38
58
  # Write a debug message to the log.
39
59
  #
@@ -78,6 +98,25 @@ module GlooLang
78
98
  end
79
99
  end
80
100
 
101
+ # ---------------------------------------------------------------------
102
+ # Serialization
103
+ # ---------------------------------------------------------------------
104
+
105
+ #
106
+ # Prepare for serialization by removing the file reference.
107
+ # Without this, the engine cannot be serialized.
108
+ #
109
+ def prep_serialize
110
+ @logger = nil
111
+ end
112
+
113
+ #
114
+ # Restore the logger after deserialization.
115
+ #
116
+ def restore_after_deserialization
117
+ create_logger
118
+ end
119
+
81
120
  end
82
121
  end
83
122
  end
@@ -23,10 +23,10 @@ module GlooLang
23
23
  @engine = engine
24
24
  @engine.log.debug 'object heap intialized...'
25
25
 
26
- @root = GlooLang::Objs::Container.new( @engine)
26
+ @root = GlooLang::Objs::Container.new( @engine )
27
27
  @root.name = 'root'
28
28
 
29
- @context = Pn.root engine
29
+ @context = Pn.root @engine
30
30
  @it = It.new
31
31
  @error = Error.new
32
32
  end
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: 1.0.0
4
+ version: 1.1.0
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-25 00:00:00.000000000 Z
11
+ date: 2022-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -31,6 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '5.1'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 5.14.2
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +41,9 @@ dependencies:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
43
  version: '5.1'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 5.14.2
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -186,9 +192,10 @@ extensions: []
186
192
  extra_rdoc_files: []
187
193
  files:
188
194
  - ".gitignore"
195
+ - ".ruby-gemset"
196
+ - ".ruby-version"
189
197
  - CODE_OF_CONDUCT.md
190
198
  - Gemfile
191
- - Gemfile.lock
192
199
  - LICENSE.txt
193
200
  - README.md
194
201
  - Rakefile
@@ -201,7 +208,6 @@ files:
201
208
  - lib/gloo_lang/app/args.rb
202
209
  - lib/gloo_lang/app/engine.rb
203
210
  - lib/gloo_lang/app/engine_context.rb
204
- - lib/gloo_lang/app/help.rb
205
211
  - lib/gloo_lang/app/info.rb
206
212
  - lib/gloo_lang/app/log.rb
207
213
  - lib/gloo_lang/app/mode.rb
@@ -243,81 +249,6 @@ files:
243
249
  - lib/gloo_lang/expr/op_minus.rb
244
250
  - lib/gloo_lang/expr/op_mult.rb
245
251
  - lib/gloo_lang/expr/op_plus.rb
246
- - lib/gloo_lang/help/app/application.txt
247
- - lib/gloo_lang/help/app/configuration.txt
248
- - lib/gloo_lang/help/app/default_help.txt
249
- - lib/gloo_lang/help/app/logging.txt
250
- - lib/gloo_lang/help/core/color.txt
251
- - lib/gloo_lang/help/core/error.txt
252
- - lib/gloo_lang/help/core/events.txt
253
- - lib/gloo_lang/help/core/gloo_system.txt
254
- - lib/gloo_lang/help/core/here.txt
255
- - lib/gloo_lang/help/core/it.txt
256
- - lib/gloo_lang/help/core/ops.txt
257
- - lib/gloo_lang/help/core/pathname.txt
258
- - lib/gloo_lang/help/objs/basic/alias.txt
259
- - lib/gloo_lang/help/objs/basic/boolean.txt
260
- - lib/gloo_lang/help/objs/basic/container.txt
261
- - lib/gloo_lang/help/objs/basic/decimal.txt
262
- - lib/gloo_lang/help/objs/basic/integer.txt
263
- - lib/gloo_lang/help/objs/basic/script.txt
264
- - lib/gloo_lang/help/objs/basic/string.txt
265
- - lib/gloo_lang/help/objs/basic/text.txt
266
- - lib/gloo_lang/help/objs/basic/untyped.txt
267
- - lib/gloo_lang/help/objs/cli/banner.txt
268
- - lib/gloo_lang/help/objs/cli/bar.txt
269
- - lib/gloo_lang/help/objs/cli/colorize.txt
270
- - lib/gloo_lang/help/objs/cli/confirm.txt
271
- - lib/gloo_lang/help/objs/cli/menu.txt
272
- - lib/gloo_lang/help/objs/cli/menu_item.txt
273
- - lib/gloo_lang/help/objs/cli/pastel.txt
274
- - lib/gloo_lang/help/objs/cli/prompt.txt
275
- - lib/gloo_lang/help/objs/cli/select.txt
276
- - lib/gloo_lang/help/objs/ctrl/each.txt
277
- - lib/gloo_lang/help/objs/ctrl/repeat.txt
278
- - lib/gloo_lang/help/objs/data/markdown.txt
279
- - lib/gloo_lang/help/objs/data/mysql.txt
280
- - lib/gloo_lang/help/objs/data/query.txt
281
- - lib/gloo_lang/help/objs/data/sqlite.txt
282
- - lib/gloo_lang/help/objs/data/table.txt
283
- - lib/gloo_lang/help/objs/dev/git_repo.txt
284
- - lib/gloo_lang/help/objs/dev/stats.txt
285
- - lib/gloo_lang/help/objs/dt/date.txt
286
- - lib/gloo_lang/help/objs/dt/datetime.txt
287
- - lib/gloo_lang/help/objs/dt/time.txt
288
- - lib/gloo_lang/help/objs/ror/erb.txt
289
- - lib/gloo_lang/help/objs/ror/eval.txt
290
- - lib/gloo_lang/help/objs/snd/play.txt
291
- - lib/gloo_lang/help/objs/snd/say.txt
292
- - lib/gloo_lang/help/objs/system/file.txt
293
- - lib/gloo_lang/help/objs/system/ssh_exec.txt
294
- - lib/gloo_lang/help/objs/system/system.txt
295
- - lib/gloo_lang/help/objs/web/http_get.txt
296
- - lib/gloo_lang/help/objs/web/http_post.txt
297
- - lib/gloo_lang/help/objs/web/json.txt
298
- - lib/gloo_lang/help/objs/web/slack.txt
299
- - lib/gloo_lang/help/objs/web/teams.txt
300
- - lib/gloo_lang/help/objs/web/uri.txt
301
- - lib/gloo_lang/help/verbs/alert.txt
302
- - lib/gloo_lang/help/verbs/beep.txt
303
- - lib/gloo_lang/help/verbs/cls.txt
304
- - lib/gloo_lang/help/verbs/context.txt
305
- - lib/gloo_lang/help/verbs/create.txt
306
- - lib/gloo_lang/help/verbs/execute.txt
307
- - lib/gloo_lang/help/verbs/help.txt
308
- - lib/gloo_lang/help/verbs/if.txt
309
- - lib/gloo_lang/help/verbs/list.txt
310
- - lib/gloo_lang/help/verbs/load.txt
311
- - lib/gloo_lang/help/verbs/move.txt
312
- - lib/gloo_lang/help/verbs/put.txt
313
- - lib/gloo_lang/help/verbs/quit.txt
314
- - lib/gloo_lang/help/verbs/run.txt
315
- - lib/gloo_lang/help/verbs/save.txt
316
- - lib/gloo_lang/help/verbs/show.txt
317
- - lib/gloo_lang/help/verbs/tell.txt
318
- - lib/gloo_lang/help/verbs/unless.txt
319
- - lib/gloo_lang/help/verbs/version.txt
320
- - lib/gloo_lang/help/verbs/wait.txt
321
252
  - lib/gloo_lang/objs/basic/alias.rb
322
253
  - lib/gloo_lang/objs/basic/boolean.rb
323
254
  - lib/gloo_lang/objs/basic/container.rb
@@ -354,7 +285,6 @@ files:
354
285
  - lib/gloo_lang/verbs/context.rb
355
286
  - lib/gloo_lang/verbs/create.rb
356
287
  - lib/gloo_lang/verbs/execute.rb
357
- - lib/gloo_lang/verbs/help.rb
358
288
  - lib/gloo_lang/verbs/if.rb
359
289
  - lib/gloo_lang/verbs/list.rb
360
290
  - lib/gloo_lang/verbs/load.rb
@@ -366,7 +296,6 @@ files:
366
296
  - lib/gloo_lang/verbs/show.rb
367
297
  - lib/gloo_lang/verbs/tell.rb
368
298
  - lib/gloo_lang/verbs/unless.rb
369
- - lib/gloo_lang/verbs/version.rb
370
299
  - lib/gloo_lang/verbs/wait.rb
371
300
  homepage: http://github.com/ecrane/gloo_lang
372
301
  licenses:
data/Gemfile.lock DELETED
@@ -1,68 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- gloo-lang (0.9.11)
5
- activesupport (~> 6.1, >= 6.1.4.6)
6
- chronic (~> 0.10, >= 0.10.2)
7
- json (~> 2.1, >= 2.1.0)
8
- net-ssh (~> 6.1, >= 6.1.0)
9
- openssl (~> 2.1, >= 2.1.0)
10
- tty-platform (~> 0.3, >= 0.3.0)
11
-
12
- GEM
13
- remote: https://rubygems.org/
14
- specs:
15
- activesupport (6.1.5)
16
- concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 1.6, < 2)
18
- minitest (>= 5.1)
19
- tzinfo (~> 2.0)
20
- zeitwerk (~> 2.3)
21
- ast (2.4.2)
22
- chronic (0.10.2)
23
- concurrent-ruby (1.1.10)
24
- i18n (1.10.0)
25
- concurrent-ruby (~> 1.0)
26
- ipaddr (1.2.4)
27
- json (2.6.1)
28
- minitest (5.15.0)
29
- net-ssh (6.1.0)
30
- openssl (2.2.1)
31
- ipaddr
32
- parallel (1.21.0)
33
- parser (3.1.1.0)
34
- ast (~> 2.4.1)
35
- rainbow (3.1.1)
36
- rake (13.0.6)
37
- regexp_parser (2.2.1)
38
- rexml (3.2.5)
39
- rubocop (1.25.1)
40
- parallel (~> 1.10)
41
- parser (>= 3.1.0.0)
42
- rainbow (>= 2.2.2, < 4.0)
43
- regexp_parser (>= 1.8, < 3.0)
44
- rexml
45
- rubocop-ast (>= 1.15.1, < 2.0)
46
- ruby-progressbar (~> 1.7)
47
- unicode-display_width (>= 1.4.0, < 3.0)
48
- rubocop-ast (1.16.0)
49
- parser (>= 3.1.1.0)
50
- ruby-progressbar (1.11.0)
51
- tty-platform (0.3.0)
52
- tzinfo (2.0.4)
53
- concurrent-ruby (~> 1.0)
54
- unicode-display_width (2.1.0)
55
- zeitwerk (2.5.4)
56
-
57
- PLATFORMS
58
- x86_64-darwin-21
59
-
60
- DEPENDENCIES
61
- bundler (~> 2.2.22)
62
- gloo-lang!
63
- minitest (~> 5.1)
64
- rake (~> 13.0, >= 13.0.1)
65
- rubocop
66
-
67
- BUNDLED WITH
68
- 2.2.22
@@ -1,118 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Help system.
5
- #
6
-
7
- module GlooLang
8
- module App
9
- class Help
10
-
11
- APPLICATION = 'application'.freeze
12
-
13
- attr_accessor :topics
14
-
15
- #
16
- # Set up the help system.
17
- # We won't load help topics until we know we need them.
18
- #
19
- def initialize( engine )
20
- @engine = engine
21
- @topics = nil
22
- end
23
-
24
- #
25
- # Show application help.
26
- # This is the what is shown when help is run from the CLI.
27
- #
28
- def show_app_help
29
- puts Info.display_title unless @engine.args.quiet?
30
- self.show_topic APPLICATION
31
- end
32
-
33
- #
34
- # Check to see if there is a topic by the given name.
35
- #
36
- def topic?( name )
37
- lazy_load_index
38
-
39
- return @topics.key?( name )
40
- end
41
-
42
- #
43
- # Is the current topic Markdown?
44
- #
45
- def topic_is_md?( name )
46
- lazy_load_index
47
-
48
- topic_file = @topics[ name ]
49
- return topic_file.end_with? '.md'
50
- end
51
-
52
- #
53
- # Show a help topic, optionally paginaged.
54
- # If the content of the help page fits on a single
55
- # screen, it won't paginate.
56
- #
57
- def page_topic( topic )
58
- return if @engine.args.quiet?
59
-
60
- data = self.get_topic_data( topic )
61
- page = data.lines.count > Settings.page_size( @engine )
62
- @engine.platform.show( data, topic_is_md?( topic ), page )
63
- end
64
-
65
- #
66
- # Show a help topic.
67
- #
68
- def show_topic( topic )
69
- return if @engine.args.quiet?
70
-
71
- data = self.get_topic_data( topic )
72
- @engine.platform.show( data, topic_is_md?( topic ), false )
73
- end
74
-
75
- #
76
- # Get topic data.
77
- #
78
- def get_topic_data( topic )
79
- lazy_load_index
80
-
81
- topic_file = @topics[ topic ]
82
- return nil unless topic_file
83
-
84
- File.read topic_file
85
- end
86
-
87
- #
88
- # Lazy load topic index.
89
- # We'll only load the index the first time a help topic
90
- # is requested. After that we'll use the cached index.
91
- #
92
- def lazy_load_index
93
- return if @topics
94
-
95
- @topics = {}
96
- @engine.log.debug 'loading help file index...'
97
-
98
- pn = File.dirname( File.absolute_path( __FILE__ ) )
99
- pn = File.dirname( pn )
100
-
101
- root = File.join( pn, 'help', '**/*.txt' )
102
- Dir.glob( root ).each do |txt_file|
103
- key = File.basename( txt_file, '.txt' )
104
- @topics[ key ] = txt_file
105
- end
106
-
107
- root = File.join( pn, 'help', '**/*.md' )
108
- Dir.glob( root ).each do |md_file|
109
- key = File.basename( md_file, '.md' )
110
- @topics[ key ] = md_file
111
- end
112
-
113
- @engine.log.debug "Found #{@topics.count} help files"
114
- end
115
-
116
- end
117
- end
118
- end
@@ -1,22 +0,0 @@
1
- GLOO APPLICATION
2
-
3
- DESCRIPTION
4
- Gloo scripting language. A scripting language built on ruby.
5
- More information coming soon.
6
-
7
- SYNOPSIS
8
- gloo [global option] [file]
9
-
10
- GLOBAL OPTIONS
11
- --cli - Run in CLI mode
12
- - If no options are specified, this is the default.
13
- --version - Show application version
14
- --help - Show this help page
15
-
16
- FILE
17
- TODO: document running a gloo script
18
- how to reference files by relative path in gloo folder
19
- and also by absolute path
20
-
21
- SEE ALSO
22
- application, configuration
@@ -1,7 +0,0 @@
1
- CONFIGURATION
2
-
3
- DESCRIPTION
4
- TODO: document the application configuration and settings
5
-
6
- SEE ALSO
7
- application, help
@@ -1,14 +0,0 @@
1
- GLOO HELP
2
-
3
- TODO: write this article
4
-
5
- LISTS
6
- Show options for object and verb lists
7
-
8
- DETAIL
9
- How to get help detail for verbs and objects
10
- How to see a help pages
11
- How to see a list of help pages (topics)
12
-
13
- SEE ALSO
14
- application, configuration
@@ -1,16 +0,0 @@
1
- GLOO APPLICATION LOGGING
2
-
3
- DESCRIPTION
4
- Gloo writes to the gloo.log as well as to the console.
5
- Debug messages are written to the log only, but other messages
6
- are also written to the console unless the application is
7
- running in quiet mode.
8
-
9
- CONFIGURATION
10
- The application logs folder is in the gloo folder.
11
- When gloo is run, the gloo.log file will be written to.
12
-
13
- TAIL
14
- Example tail command to watch the gloo log:
15
-
16
- tail -f ~/gloo/logs/gloo.log
@@ -1,31 +0,0 @@
1
- COLOR
2
-
3
- DESCRIPTION
4
- The following colors can be used by the show verb to display
5
- colored text:
6
-
7
- red
8
- blue
9
- green
10
- white
11
- black
12
- yellow
13
-
14
- The color names are considered as virtual objects but may
15
- also be referenced in variables. See the example below.
16
-
17
- EXAMPLE
18
- Here are some examples of expression usage:
19
-
20
- #
21
- # Show multiple messages in color
22
- #
23
- colors [can] :
24
- var [string] : red
25
- on_load [script] :
26
- show "red" (colors.var)
27
- show "blue" (blue)
28
- show "green" (green)
29
-
30
- SEE ALSO
31
- show