gloo 0.8.0 → 1.0.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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/Gemfile.lock +32 -28
  4. data/LICENSE.txt +1 -1
  5. data/gloo.gemspec +11 -6
  6. data/lib/VERSION +1 -1
  7. data/lib/dependencies.rb +4 -4
  8. data/lib/gloo/app/info.rb +3 -1
  9. data/lib/gloo/app/log.rb +1 -29
  10. data/lib/gloo/app/platform.rb +142 -0
  11. data/lib/gloo/objs/cli/banner.rb +2 -2
  12. data/lib/gloo/objs/cli/bar.rb +4 -4
  13. data/lib/gloo/objs/cli/colorize.rb +3 -3
  14. data/lib/gloo/objs/cli/confirm.rb +3 -3
  15. data/lib/gloo/objs/cli/menu.rb +9 -9
  16. data/lib/gloo/objs/cli/menu_item.rb +2 -2
  17. data/lib/gloo/objs/cli/pastel.rb +2 -2
  18. data/lib/gloo/objs/cli/prompt.rb +4 -4
  19. data/lib/gloo/objs/cli/select.rb +4 -4
  20. data/lib/gloo/objs/dev/git.rb +7 -7
  21. data/lib/gloo/objs/dev/stats.rb +8 -5
  22. data/lib/gloo/objs/snd/play.rb +1 -1
  23. data/lib/gloo/objs/snd/say.rb +2 -2
  24. data/lib/gloo/objs/system/file_handle.rb +9 -9
  25. data/lib/gloo/objs/system/ssh_exec.rb +3 -3
  26. data/lib/gloo/objs/system/system.rb +2 -2
  27. data/lib/gloo/verbs/alert.rb +7 -7
  28. data/lib/gloo/verbs/beep.rb +1 -1
  29. data/lib/gloo/verbs/cls.rb +2 -2
  30. data/lib/gloo.rb +5 -1
  31. data/lib/run.rb +5 -1
  32. metadata +39 -145
  33. data/lib/gloo/app/args.rb +0 -112
  34. data/lib/gloo/app/engine.rb +0 -230
  35. data/lib/gloo/app/help.rb +0 -156
  36. data/lib/gloo/app/mode.rb +0 -27
  37. data/lib/gloo/app/settings.rb +0 -186
  38. data/lib/gloo/convert/converter.rb +0 -35
  39. data/lib/gloo/convert/string_to_datetime.rb +0 -21
  40. data/lib/gloo/convert/string_to_decimal.rb +0 -20
  41. data/lib/gloo/convert/string_to_integer.rb +0 -20
  42. data/lib/gloo/core/baseo.rb +0 -30
  43. data/lib/gloo/core/dictionary.rb +0 -181
  44. data/lib/gloo/core/error.rb +0 -61
  45. data/lib/gloo/core/event_manager.rb +0 -44
  46. data/lib/gloo/core/factory.rb +0 -210
  47. data/lib/gloo/core/gloo_system.rb +0 -266
  48. data/lib/gloo/core/heap.rb +0 -52
  49. data/lib/gloo/core/here.rb +0 -36
  50. data/lib/gloo/core/it.rb +0 -36
  51. data/lib/gloo/core/literal.rb +0 -30
  52. data/lib/gloo/core/obj.rb +0 -303
  53. data/lib/gloo/core/obj_finder.rb +0 -30
  54. data/lib/gloo/core/op.rb +0 -40
  55. data/lib/gloo/core/parser.rb +0 -59
  56. data/lib/gloo/core/pn.rb +0 -188
  57. data/lib/gloo/core/tokens.rb +0 -165
  58. data/lib/gloo/core/verb.rb +0 -86
  59. data/lib/gloo/exec/action.rb +0 -48
  60. data/lib/gloo/exec/dispatch.rb +0 -40
  61. data/lib/gloo/exec/exec_env.rb +0 -74
  62. data/lib/gloo/exec/runner.rb +0 -45
  63. data/lib/gloo/exec/script.rb +0 -49
  64. data/lib/gloo/exec/stack.rb +0 -78
  65. data/lib/gloo/expr/expression.rb +0 -118
  66. data/lib/gloo/expr/l_boolean.rb +0 -36
  67. data/lib/gloo/expr/l_decimal.rb +0 -39
  68. data/lib/gloo/expr/l_integer.rb +0 -37
  69. data/lib/gloo/expr/l_string.rb +0 -58
  70. data/lib/gloo/expr/op_div.rb +0 -22
  71. data/lib/gloo/expr/op_minus.rb +0 -22
  72. data/lib/gloo/expr/op_mult.rb +0 -22
  73. data/lib/gloo/expr/op_plus.rb +0 -24
  74. data/lib/gloo/objs/basic/alias.rb +0 -78
  75. data/lib/gloo/objs/basic/boolean.rb +0 -120
  76. data/lib/gloo/objs/basic/container.rb +0 -76
  77. data/lib/gloo/objs/basic/decimal.rb +0 -76
  78. data/lib/gloo/objs/basic/integer.rb +0 -73
  79. data/lib/gloo/objs/basic/script.rb +0 -99
  80. data/lib/gloo/objs/basic/string.rb +0 -77
  81. data/lib/gloo/objs/basic/text.rb +0 -87
  82. data/lib/gloo/objs/basic/untyped.rb +0 -41
  83. data/lib/gloo/objs/ctrl/each.rb +0 -279
  84. data/lib/gloo/objs/ctrl/repeat.rb +0 -108
  85. data/lib/gloo/objs/data/markdown.rb +0 -84
  86. data/lib/gloo/objs/data/mysql.rb +0 -192
  87. data/lib/gloo/objs/data/query.rb +0 -176
  88. data/lib/gloo/objs/data/sqlite.rb +0 -159
  89. data/lib/gloo/objs/data/table.rb +0 -140
  90. data/lib/gloo/objs/dt/date.rb +0 -50
  91. data/lib/gloo/objs/dt/datetime.rb +0 -62
  92. data/lib/gloo/objs/dt/time.rb +0 -50
  93. data/lib/gloo/objs/ror/erb.rb +0 -116
  94. data/lib/gloo/objs/ror/eval.rb +0 -107
  95. data/lib/gloo/objs/web/http_get.rb +0 -159
  96. data/lib/gloo/objs/web/http_post.rb +0 -183
  97. data/lib/gloo/objs/web/json.rb +0 -135
  98. data/lib/gloo/objs/web/slack.rb +0 -130
  99. data/lib/gloo/objs/web/teams.rb +0 -117
  100. data/lib/gloo/objs/web/uri.rb +0 -148
  101. data/lib/gloo/persist/file_loader.rb +0 -191
  102. data/lib/gloo/persist/file_saver.rb +0 -49
  103. data/lib/gloo/persist/file_storage.rb +0 -45
  104. data/lib/gloo/persist/line_splitter.rb +0 -81
  105. data/lib/gloo/persist/persist_man.rb +0 -120
  106. data/lib/gloo/utils/format.rb +0 -21
  107. data/lib/gloo/utils/stats.rb +0 -205
  108. data/lib/gloo/utils/words.rb +0 -19
  109. data/lib/gloo/verbs/context.rb +0 -62
  110. data/lib/gloo/verbs/create.rb +0 -68
  111. data/lib/gloo/verbs/execute.rb +0 -56
  112. data/lib/gloo/verbs/help.rb +0 -264
  113. data/lib/gloo/verbs/if.rb +0 -92
  114. data/lib/gloo/verbs/list.rb +0 -98
  115. data/lib/gloo/verbs/load.rb +0 -45
  116. data/lib/gloo/verbs/move.rb +0 -89
  117. data/lib/gloo/verbs/put.rb +0 -94
  118. data/lib/gloo/verbs/quit.rb +0 -40
  119. data/lib/gloo/verbs/run.rb +0 -75
  120. data/lib/gloo/verbs/save.rb +0 -39
  121. data/lib/gloo/verbs/show.rb +0 -64
  122. data/lib/gloo/verbs/tell.rb +0 -79
  123. data/lib/gloo/verbs/unless.rb +0 -92
  124. data/lib/gloo/verbs/version.rb +0 -37
  125. data/lib/gloo/verbs/wait.rb +0 -42
@@ -1,75 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Run a script.
5
- # Shortcut for telling a script to run.
6
- #
7
-
8
- module Gloo
9
- module Verbs
10
- class Run < Gloo::Core::Verb
11
-
12
- KEYWORD = 'run'.freeze
13
- KEYWORD_SHORT = 'r'.freeze
14
- EVALUATE_RUN = '~>'.freeze
15
- MISSING_EXPR_ERR = 'Missing Expression!'.freeze
16
-
17
- #
18
- # Run the verb.
19
- #
20
- def run
21
- if @tokens.token_count < 2
22
- $engine.err MISSING_EXPR_ERR
23
- return
24
- end
25
-
26
- if @tokens.second == EVALUATE_RUN
27
- run_expression
28
- else
29
- run_script
30
- end
31
- end
32
-
33
- #
34
- # Get the Verb's keyword.
35
- #
36
- def self.keyword
37
- return KEYWORD
38
- end
39
-
40
- #
41
- # Get the Verb's keyword shortcut.
42
- #
43
- def self.keyword_shortcut
44
- return KEYWORD_SHORT
45
- end
46
-
47
- # ---------------------------------------------------------------------
48
- # Private functions
49
- # ---------------------------------------------------------------------
50
-
51
- private
52
-
53
- #
54
- # Run a script specified by pathname
55
- #
56
- def run_script
57
- Gloo::Exec::Runner.run @tokens.second
58
- end
59
-
60
- #
61
- # Evaluate an expression and run that.
62
- #
63
- def run_expression
64
- unless @tokens.token_count > 2
65
- $engine.err MISSING_EXPR_ERR
66
- return
67
- end
68
-
69
- expr = Gloo::Expr::Expression.new( @tokens.params[ 1..-1 ] )
70
- $engine.parser.run expr.evaluate
71
- end
72
-
73
- end
74
- end
75
- end
@@ -1,39 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Save an object to a file or other persistance mechcanism.
5
- #
6
-
7
- module Gloo
8
- module Verbs
9
- class Save < Gloo::Core::Verb
10
-
11
- KEYWORD = 'save'.freeze
12
- KEYWORD_SHORT = '>'.freeze
13
-
14
- #
15
- # Run the verb.
16
- #
17
- def run
18
- # TODO: Not currently using folders or keeping
19
- # track of where the object was loaded from.
20
- $engine.persist_man.save @tokens.second
21
- end
22
-
23
- #
24
- # Get the Verb's keyword.
25
- #
26
- def self.keyword
27
- return KEYWORD
28
- end
29
-
30
- #
31
- # Get the Verb's keyword shortcut.
32
- #
33
- def self.keyword_shortcut
34
- return KEYWORD_SHORT
35
- end
36
-
37
- end
38
- end
39
- end
@@ -1,64 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Show a single object's value.
5
- #
6
- require 'colorized_string'
7
-
8
- module Gloo
9
- module Verbs
10
- class Show < Gloo::Core::Verb
11
-
12
- KEYWORD = 'show'.freeze
13
- KEYWORD_SHORT = '='.freeze
14
-
15
- #
16
- # Run the verb.
17
- #
18
- def run
19
- if @tokens.token_count > 1
20
- expr = Gloo::Expr::Expression.new( @tokens.params )
21
- result = expr.evaluate
22
- $log.show get_formatted_string( result )
23
- $engine.heap.it.set_to result
24
- else
25
- $log.show ''
26
- end
27
- end
28
-
29
- #
30
- # Get the Verb's keyword.
31
- #
32
- def self.keyword
33
- return KEYWORD
34
- end
35
-
36
- #
37
- # Get the Verb's keyword shortcut.
38
- #
39
- def self.keyword_shortcut
40
- return KEYWORD_SHORT
41
- end
42
-
43
- # ---------------------------------------------------------------------
44
- # Private functions
45
- # ---------------------------------------------------------------------
46
-
47
- private
48
-
49
- #
50
- # Get the formatted string.
51
- #
52
- def get_formatted_string( str )
53
- if @params&.token_count&.positive?
54
- expr = Gloo::Expr::Expression.new( @params.tokens )
55
- val = expr.evaluate
56
- color = val.to_sym
57
- return ColorizedString[ str.to_s ].colorize( color )
58
- end
59
- return str
60
- end
61
-
62
- end
63
- end
64
- end
@@ -1,79 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Create an object, optionally of a type.
5
- #
6
-
7
- module Gloo
8
- module Verbs
9
- class Tell < Gloo::Core::Verb
10
-
11
- KEYWORD = 'tell'.freeze
12
- KEYWORD_SHORT = '->'.freeze
13
- TO = 'to'.freeze
14
- OBJ_NOT_FOUND_ERR = 'Object was not found: '.freeze
15
- UNKNOWN_MSG_ERR = 'Missing message!'.freeze
16
-
17
- #
18
- # Run the verb.
19
- #
20
- def run
21
- setup_msg
22
- return unless @msg
23
-
24
- setup_target
25
- dispatch_msg
26
- end
27
-
28
- #
29
- # Get the Verb's keyword.
30
- #
31
- def self.keyword
32
- return KEYWORD
33
- end
34
-
35
- #
36
- # Get the Verb's keyword shortcut.
37
- #
38
- def self.keyword_shortcut
39
- return KEYWORD_SHORT
40
- end
41
-
42
- # ---------------------------------------------------------------------
43
- # Private functions
44
- # ---------------------------------------------------------------------
45
-
46
- private
47
-
48
- #
49
- # Lookup the message to send.
50
- #
51
- def setup_msg
52
- @msg = @tokens.after_token( TO )
53
-
54
- $engine.err( UNKNOWN_MSG_ERR ) unless @msg
55
- end
56
-
57
- #
58
- # Setup the target of the message.
59
- #
60
- def setup_target
61
- @obj_name = @tokens.second
62
- pn = Gloo::Core::Pn.new @obj_name
63
- @target_obj = pn.resolve
64
- end
65
-
66
- #
67
- # Dispatch the message to the target object.
68
- #
69
- def dispatch_msg
70
- if @target_obj
71
- Gloo::Exec::Dispatch.message @msg, @target_obj, @params
72
- else
73
- $engine.err "#{OBJ_NOT_FOUND_ERR} #{@obj_name}"
74
- end
75
- end
76
-
77
- end
78
- end
79
- end
@@ -1,92 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # If something is false, do something.
5
- #
6
-
7
- module Gloo
8
- module Verbs
9
- class Unless < Gloo::Core::Verb
10
-
11
- KEYWORD = 'unless'.freeze
12
- KEYWORD_SHORT = 'if!'.freeze
13
- DO = 'do'.freeze
14
- MISSING_EXPR_ERR = 'Missing Expression!'.freeze
15
-
16
- #
17
- # Run the verb.
18
- #
19
- def run
20
- value = value_tokens
21
- return if value.nil?
22
-
23
- return unless evals_false( value )
24
-
25
- run_do
26
- end
27
-
28
- #
29
- # Get the Verb's keyword.
30
- #
31
- def self.keyword
32
- return KEYWORD
33
- end
34
-
35
- #
36
- # Get the Verb's keyword shortcut.
37
- #
38
- def self.keyword_shortcut
39
- return KEYWORD_SHORT
40
- end
41
-
42
- # ---------------------------------------------------------------------
43
- # Private functions
44
- # ---------------------------------------------------------------------
45
-
46
- private
47
-
48
- #
49
- # Get the list of tokens that represent the parameters
50
- # of the unless command.
51
- #
52
- def value_tokens
53
- value = @tokens.before_token( DO )
54
- if value && value.count > 1
55
- # The first token is the verb, so we drop it.
56
- value = value[ 1..-1 ]
57
- else
58
- $engine.err MISSING_EXPR_ERR
59
- end
60
-
61
- return value
62
- end
63
-
64
- #
65
- # Does the given value evalute to true?
66
- #
67
- def evals_false( value )
68
- eval_result = false
69
- if value.count.positive?
70
- expr = Gloo::Expr::Expression.new( value )
71
- result = expr.evaluate
72
- eval_result = true if result == false
73
- eval_result = true if result.is_a?( Numeric ) && result.zero?
74
- end
75
-
76
- return eval_result
77
- end
78
-
79
- #
80
- # Run the 'do' command.
81
- #
82
- def run_do
83
- cmd = @tokens.expr_after( DO )
84
- i = $engine.parser.parse_immediate cmd
85
- return unless i
86
-
87
- i.run
88
- end
89
-
90
- end
91
- end
92
- end
@@ -1,37 +0,0 @@
1
- # Author:: Eric Crane (mailto:eric.crane@mac.com)
2
- # Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
3
- #
4
- # Show the current application version.
5
- #
6
-
7
- module Gloo
8
- module Verbs
9
- class Version < Gloo::Core::Verb
10
-
11
- KEYWORD = 'version'.freeze
12
- KEYWORD_SHORT = 'v'.freeze
13
-
14
- #
15
- # Run the verb.
16
- #
17
- def run
18
- $log.show Gloo::App::Info.display_title
19
- end
20
-
21
- #
22
- # Get the Verb's keyword.
23
- #
24
- def self.keyword
25
- return KEYWORD
26
- end
27
-
28
- #
29
- # Get the Verb's keyword shortcut.
30
- #
31
- def self.keyword_shortcut
32
- return KEYWORD_SHORT
33
- end
34
-
35
- end
36
- end
37
- end
@@ -1,42 +0,0 @@
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
- end
41
- end
42
- end