gloo 0.4.0 → 0.5.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.rubocop.yml +1 -1
  4. data/Gemfile.lock +80 -81
  5. data/Rakefile +1 -0
  6. data/gloo.gemspec +2 -1
  7. data/lib/gloo/app/engine.rb +48 -3
  8. data/lib/gloo/app/info.rb +1 -1
  9. data/lib/gloo/app/settings.rb +12 -5
  10. data/lib/gloo/convert/string_to_datetime.rb +21 -0
  11. data/lib/gloo/convert/string_to_decimal.rb +20 -0
  12. data/lib/gloo/convert/string_to_integer.rb +20 -0
  13. data/lib/gloo/core/event_manager.rb +2 -6
  14. data/lib/gloo/core/factory.rb +58 -1
  15. data/lib/gloo/core/gloo_system.rb +72 -0
  16. data/lib/gloo/core/obj.rb +50 -1
  17. data/lib/gloo/core/parser.rb +3 -1
  18. data/lib/gloo/core/pn.rb +3 -2
  19. data/lib/gloo/exec/dispatch.rb +30 -0
  20. data/lib/gloo/exec/runner.rb +43 -0
  21. data/lib/gloo/expr/expression.rb +1 -0
  22. data/lib/gloo/expr/l_decimal.rb +34 -0
  23. data/lib/gloo/expr/op_div.rb +2 -0
  24. data/lib/gloo/expr/op_minus.rb +2 -0
  25. data/lib/gloo/expr/op_mult.rb +2 -0
  26. data/lib/gloo/expr/op_plus.rb +2 -0
  27. data/lib/gloo/objs/basic/alias.rb +111 -0
  28. data/lib/gloo/objs/basic/container.rb +11 -1
  29. data/lib/gloo/objs/basic/decimal.rb +96 -0
  30. data/lib/gloo/objs/basic/integer.rb +5 -0
  31. data/lib/gloo/objs/basic/string.rb +9 -1
  32. data/lib/gloo/objs/basic/text.rb +27 -2
  33. data/lib/gloo/objs/cli/banner.rb +137 -0
  34. data/lib/gloo/objs/cli/bar.rb +141 -0
  35. data/lib/gloo/objs/cli/colorize.rb +1 -1
  36. data/lib/gloo/objs/cli/menu.rb +236 -0
  37. data/lib/gloo/objs/cli/menu_item.rb +128 -0
  38. data/lib/gloo/objs/cli/pastel.rb +120 -0
  39. data/lib/gloo/objs/cli/prompt.rb +19 -11
  40. data/lib/gloo/objs/cli/select.rb +153 -0
  41. data/lib/gloo/objs/ctrl/each.rb +45 -16
  42. data/lib/gloo/objs/ctrl/repeat.rb +129 -0
  43. data/lib/gloo/objs/data/markdown.rb +109 -0
  44. data/lib/gloo/objs/data/table.rb +168 -0
  45. data/lib/gloo/objs/dt/date.rb +72 -0
  46. data/lib/gloo/objs/dt/datetime.rb +84 -0
  47. data/lib/gloo/objs/dt/time.rb +72 -0
  48. data/lib/gloo/objs/ror/erb.rb +1 -0
  49. data/lib/gloo/objs/system/file_handle.rb +50 -1
  50. data/lib/gloo/objs/web/http_get.rb +24 -4
  51. data/lib/gloo/objs/web/http_post.rb +1 -0
  52. data/lib/gloo/objs/web/json.rb +155 -0
  53. data/lib/gloo/objs/web/uri.rb +160 -0
  54. data/lib/gloo/persist/file_loader.rb +17 -6
  55. data/lib/gloo/persist/line_splitter.rb +7 -2
  56. data/lib/gloo/persist/persist_man.rb +37 -13
  57. data/lib/gloo/verbs/cls.rb +67 -0
  58. data/lib/gloo/verbs/help.rb +9 -0
  59. data/lib/gloo/verbs/if.rb +1 -0
  60. data/lib/gloo/verbs/load.rb +3 -2
  61. data/lib/gloo/verbs/move.rb +128 -0
  62. data/lib/gloo/verbs/run.rb +21 -7
  63. data/lib/gloo/verbs/tell.rb +1 -1
  64. data/lib/gloo/verbs/unless.rb +1 -0
  65. data/lib/gloo/verbs/wait.rb +73 -0
  66. metadata +36 -5
  67. data/lib/gloo/core/runner.rb +0 -26
@@ -0,0 +1,73 @@
1
+ # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
+ # Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved.
3
+ #
4
+ # Wait for the given number of seconds.
5
+ #
6
+
7
+ module Gloo
8
+ module Verbs
9
+ class Wait < Gloo::Core::Verb
10
+
11
+ KEYWORD = 'wait'.freeze
12
+ KEYWORD_SHORT = 'w'.freeze
13
+
14
+ #
15
+ # Run the verb.
16
+ #
17
+ def run
18
+ x = 1
19
+ if @tokens.token_count > 1
20
+ expr = Gloo::Expr::Expression.new( @tokens.params )
21
+ x = expr.evaluate.to_i
22
+ end
23
+ sleep x
24
+ end
25
+
26
+ #
27
+ # Get the Verb's keyword.
28
+ #
29
+ def self.keyword
30
+ return KEYWORD
31
+ end
32
+
33
+ #
34
+ # Get the Verb's keyword shortcut.
35
+ #
36
+ def self.keyword_shortcut
37
+ return KEYWORD_SHORT
38
+ end
39
+
40
+ # ---------------------------------------------------------------------
41
+ # Help
42
+ # ---------------------------------------------------------------------
43
+
44
+ #
45
+ # Get help for this verb.
46
+ #
47
+ def self.help
48
+ return <<~TEXT
49
+ WAIT VERB
50
+ NAME: wait
51
+ SHORTCUT: w
52
+
53
+ DESCRIPTION
54
+ Wait for the given number of seconds.
55
+
56
+ SYNTAX
57
+ wait <seconds>
58
+
59
+ PARAMETERS
60
+ seconds - The number of seconds.
61
+ If no value is given, we'll wait for 1 second.
62
+
63
+ RESULT
64
+ None
65
+
66
+ ERRORS
67
+ None
68
+ TEXT
69
+ end
70
+
71
+ end
72
+ end
73
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gloo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Crane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-10 00:00:00.000000000 Z
11
+ date: 2020-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,14 +44,20 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '13.0'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 13.0.1
48
51
  type: :development
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
55
  - - "~>"
53
56
  - !ruby/object:Gem::Version
54
- version: '10.0'
57
+ version: '13.0'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 13.0.1
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: activesupport
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -141,6 +147,7 @@ executables:
141
147
  extensions: []
142
148
  extra_rdoc_files: []
143
149
  files:
150
+ - ".DS_Store"
144
151
  - ".gitignore"
145
152
  - ".rubocop.yml"
146
153
  - ".travis.yml"
@@ -163,6 +170,9 @@ files:
163
170
  - lib/gloo/app/log.rb
164
171
  - lib/gloo/app/mode.rb
165
172
  - lib/gloo/app/settings.rb
173
+ - lib/gloo/convert/string_to_datetime.rb
174
+ - lib/gloo/convert/string_to_decimal.rb
175
+ - lib/gloo/convert/string_to_integer.rb
166
176
  - lib/gloo/core/baseo.rb
167
177
  - lib/gloo/core/dictionary.rb
168
178
  - lib/gloo/core/error.rb
@@ -177,30 +187,46 @@ files:
177
187
  - lib/gloo/core/op.rb
178
188
  - lib/gloo/core/parser.rb
179
189
  - lib/gloo/core/pn.rb
180
- - lib/gloo/core/runner.rb
181
190
  - lib/gloo/core/script.rb
182
191
  - lib/gloo/core/tokens.rb
183
192
  - lib/gloo/core/verb.rb
193
+ - lib/gloo/exec/dispatch.rb
194
+ - lib/gloo/exec/runner.rb
184
195
  - lib/gloo/expr/expression.rb
185
196
  - lib/gloo/expr/l_boolean.rb
197
+ - lib/gloo/expr/l_decimal.rb
186
198
  - lib/gloo/expr/l_integer.rb
187
199
  - lib/gloo/expr/l_string.rb
188
200
  - lib/gloo/expr/op_div.rb
189
201
  - lib/gloo/expr/op_minus.rb
190
202
  - lib/gloo/expr/op_mult.rb
191
203
  - lib/gloo/expr/op_plus.rb
204
+ - lib/gloo/objs/basic/alias.rb
192
205
  - lib/gloo/objs/basic/boolean.rb
193
206
  - lib/gloo/objs/basic/container.rb
207
+ - lib/gloo/objs/basic/decimal.rb
194
208
  - lib/gloo/objs/basic/integer.rb
195
209
  - lib/gloo/objs/basic/script.rb
196
210
  - lib/gloo/objs/basic/string.rb
197
211
  - lib/gloo/objs/basic/text.rb
198
212
  - lib/gloo/objs/basic/untyped.rb
213
+ - lib/gloo/objs/cli/banner.rb
214
+ - lib/gloo/objs/cli/bar.rb
199
215
  - lib/gloo/objs/cli/colorize.rb
200
216
  - lib/gloo/objs/cli/confirm.rb
217
+ - lib/gloo/objs/cli/menu.rb
218
+ - lib/gloo/objs/cli/menu_item.rb
219
+ - lib/gloo/objs/cli/pastel.rb
201
220
  - lib/gloo/objs/cli/prompt.rb
221
+ - lib/gloo/objs/cli/select.rb
202
222
  - lib/gloo/objs/ctrl/each.rb
223
+ - lib/gloo/objs/ctrl/repeat.rb
224
+ - lib/gloo/objs/data/markdown.rb
225
+ - lib/gloo/objs/data/table.rb
203
226
  - lib/gloo/objs/dev/git.rb
227
+ - lib/gloo/objs/dt/date.rb
228
+ - lib/gloo/objs/dt/datetime.rb
229
+ - lib/gloo/objs/dt/time.rb
204
230
  - lib/gloo/objs/ror/erb.rb
205
231
  - lib/gloo/objs/ror/eval.rb
206
232
  - lib/gloo/objs/snd/play.rb
@@ -209,8 +235,10 @@ files:
209
235
  - lib/gloo/objs/system/system.rb
210
236
  - lib/gloo/objs/web/http_get.rb
211
237
  - lib/gloo/objs/web/http_post.rb
238
+ - lib/gloo/objs/web/json.rb
212
239
  - lib/gloo/objs/web/slack.rb
213
240
  - lib/gloo/objs/web/teams.rb
241
+ - lib/gloo/objs/web/uri.rb
214
242
  - lib/gloo/persist/file_loader.rb
215
243
  - lib/gloo/persist/file_saver.rb
216
244
  - lib/gloo/persist/file_storage.rb
@@ -219,12 +247,14 @@ files:
219
247
  - lib/gloo/utils/words.rb
220
248
  - lib/gloo/verbs/alert.rb
221
249
  - lib/gloo/verbs/beep.rb
250
+ - lib/gloo/verbs/cls.rb
222
251
  - lib/gloo/verbs/context.rb
223
252
  - lib/gloo/verbs/create.rb
224
253
  - lib/gloo/verbs/help.rb
225
254
  - lib/gloo/verbs/if.rb
226
255
  - lib/gloo/verbs/list.rb
227
256
  - lib/gloo/verbs/load.rb
257
+ - lib/gloo/verbs/move.rb
228
258
  - lib/gloo/verbs/put.rb
229
259
  - lib/gloo/verbs/quit.rb
230
260
  - lib/gloo/verbs/run.rb
@@ -233,6 +263,7 @@ files:
233
263
  - lib/gloo/verbs/tell.rb
234
264
  - lib/gloo/verbs/unless.rb
235
265
  - lib/gloo/verbs/version.rb
266
+ - lib/gloo/verbs/wait.rb
236
267
  - lib/run.rb
237
268
  homepage: http://github.com/ecrane/gloo
238
269
  licenses:
@@ -1,26 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # The Runner is a static helper function.
5
- # It is used to send the run command to verbs.
6
- #
7
-
8
- module Gloo
9
- module Core
10
- class Runner
11
-
12
- #
13
- # Dispatch run command to a verb.
14
- # We abstract this out in case there are things
15
- # that need to be done before or after a verb
16
- # is done running.
17
- #
18
- def self.go( verb )
19
- $engine.heap.error.start_tracking
20
- verb&.run
21
- $engine.heap.error.clear_if_no_errors
22
- end
23
-
24
- end
25
- end
26
- end