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.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/Gemfile.lock +32 -28
- data/LICENSE.txt +1 -1
- data/gloo.gemspec +11 -6
- data/lib/VERSION +1 -1
- data/lib/dependencies.rb +4 -4
- data/lib/gloo/app/info.rb +3 -1
- data/lib/gloo/app/log.rb +1 -29
- data/lib/gloo/app/platform.rb +142 -0
- data/lib/gloo/objs/cli/banner.rb +2 -2
- data/lib/gloo/objs/cli/bar.rb +4 -4
- data/lib/gloo/objs/cli/colorize.rb +3 -3
- data/lib/gloo/objs/cli/confirm.rb +3 -3
- data/lib/gloo/objs/cli/menu.rb +9 -9
- data/lib/gloo/objs/cli/menu_item.rb +2 -2
- data/lib/gloo/objs/cli/pastel.rb +2 -2
- data/lib/gloo/objs/cli/prompt.rb +4 -4
- data/lib/gloo/objs/cli/select.rb +4 -4
- data/lib/gloo/objs/dev/git.rb +7 -7
- data/lib/gloo/objs/dev/stats.rb +8 -5
- data/lib/gloo/objs/snd/play.rb +1 -1
- data/lib/gloo/objs/snd/say.rb +2 -2
- data/lib/gloo/objs/system/file_handle.rb +9 -9
- data/lib/gloo/objs/system/ssh_exec.rb +3 -3
- data/lib/gloo/objs/system/system.rb +2 -2
- data/lib/gloo/verbs/alert.rb +7 -7
- data/lib/gloo/verbs/beep.rb +1 -1
- data/lib/gloo/verbs/cls.rb +2 -2
- data/lib/gloo.rb +5 -1
- data/lib/run.rb +5 -1
- metadata +39 -145
- data/lib/gloo/app/args.rb +0 -112
- data/lib/gloo/app/engine.rb +0 -230
- data/lib/gloo/app/help.rb +0 -156
- data/lib/gloo/app/mode.rb +0 -27
- data/lib/gloo/app/settings.rb +0 -186
- data/lib/gloo/convert/converter.rb +0 -35
- data/lib/gloo/convert/string_to_datetime.rb +0 -21
- data/lib/gloo/convert/string_to_decimal.rb +0 -20
- data/lib/gloo/convert/string_to_integer.rb +0 -20
- data/lib/gloo/core/baseo.rb +0 -30
- data/lib/gloo/core/dictionary.rb +0 -181
- data/lib/gloo/core/error.rb +0 -61
- data/lib/gloo/core/event_manager.rb +0 -44
- data/lib/gloo/core/factory.rb +0 -210
- data/lib/gloo/core/gloo_system.rb +0 -266
- data/lib/gloo/core/heap.rb +0 -52
- data/lib/gloo/core/here.rb +0 -36
- data/lib/gloo/core/it.rb +0 -36
- data/lib/gloo/core/literal.rb +0 -30
- data/lib/gloo/core/obj.rb +0 -303
- data/lib/gloo/core/obj_finder.rb +0 -30
- data/lib/gloo/core/op.rb +0 -40
- data/lib/gloo/core/parser.rb +0 -59
- data/lib/gloo/core/pn.rb +0 -188
- data/lib/gloo/core/tokens.rb +0 -165
- data/lib/gloo/core/verb.rb +0 -86
- data/lib/gloo/exec/action.rb +0 -48
- data/lib/gloo/exec/dispatch.rb +0 -40
- data/lib/gloo/exec/exec_env.rb +0 -74
- data/lib/gloo/exec/runner.rb +0 -45
- data/lib/gloo/exec/script.rb +0 -49
- data/lib/gloo/exec/stack.rb +0 -78
- data/lib/gloo/expr/expression.rb +0 -118
- data/lib/gloo/expr/l_boolean.rb +0 -36
- data/lib/gloo/expr/l_decimal.rb +0 -39
- data/lib/gloo/expr/l_integer.rb +0 -37
- data/lib/gloo/expr/l_string.rb +0 -58
- data/lib/gloo/expr/op_div.rb +0 -22
- data/lib/gloo/expr/op_minus.rb +0 -22
- data/lib/gloo/expr/op_mult.rb +0 -22
- data/lib/gloo/expr/op_plus.rb +0 -24
- data/lib/gloo/objs/basic/alias.rb +0 -78
- data/lib/gloo/objs/basic/boolean.rb +0 -120
- data/lib/gloo/objs/basic/container.rb +0 -76
- data/lib/gloo/objs/basic/decimal.rb +0 -76
- data/lib/gloo/objs/basic/integer.rb +0 -73
- data/lib/gloo/objs/basic/script.rb +0 -99
- data/lib/gloo/objs/basic/string.rb +0 -77
- data/lib/gloo/objs/basic/text.rb +0 -87
- data/lib/gloo/objs/basic/untyped.rb +0 -41
- data/lib/gloo/objs/ctrl/each.rb +0 -279
- data/lib/gloo/objs/ctrl/repeat.rb +0 -108
- data/lib/gloo/objs/data/markdown.rb +0 -84
- data/lib/gloo/objs/data/mysql.rb +0 -192
- data/lib/gloo/objs/data/query.rb +0 -176
- data/lib/gloo/objs/data/sqlite.rb +0 -159
- data/lib/gloo/objs/data/table.rb +0 -140
- data/lib/gloo/objs/dt/date.rb +0 -50
- data/lib/gloo/objs/dt/datetime.rb +0 -62
- data/lib/gloo/objs/dt/time.rb +0 -50
- data/lib/gloo/objs/ror/erb.rb +0 -116
- data/lib/gloo/objs/ror/eval.rb +0 -107
- data/lib/gloo/objs/web/http_get.rb +0 -159
- data/lib/gloo/objs/web/http_post.rb +0 -183
- data/lib/gloo/objs/web/json.rb +0 -135
- data/lib/gloo/objs/web/slack.rb +0 -130
- data/lib/gloo/objs/web/teams.rb +0 -117
- data/lib/gloo/objs/web/uri.rb +0 -148
- data/lib/gloo/persist/file_loader.rb +0 -191
- data/lib/gloo/persist/file_saver.rb +0 -49
- data/lib/gloo/persist/file_storage.rb +0 -45
- data/lib/gloo/persist/line_splitter.rb +0 -81
- data/lib/gloo/persist/persist_man.rb +0 -120
- data/lib/gloo/utils/format.rb +0 -21
- data/lib/gloo/utils/stats.rb +0 -205
- data/lib/gloo/utils/words.rb +0 -19
- data/lib/gloo/verbs/context.rb +0 -62
- data/lib/gloo/verbs/create.rb +0 -68
- data/lib/gloo/verbs/execute.rb +0 -56
- data/lib/gloo/verbs/help.rb +0 -264
- data/lib/gloo/verbs/if.rb +0 -92
- data/lib/gloo/verbs/list.rb +0 -98
- data/lib/gloo/verbs/load.rb +0 -45
- data/lib/gloo/verbs/move.rb +0 -89
- data/lib/gloo/verbs/put.rb +0 -94
- data/lib/gloo/verbs/quit.rb +0 -40
- data/lib/gloo/verbs/run.rb +0 -75
- data/lib/gloo/verbs/save.rb +0 -39
- data/lib/gloo/verbs/show.rb +0 -64
- data/lib/gloo/verbs/tell.rb +0 -79
- data/lib/gloo/verbs/unless.rb +0 -92
- data/lib/gloo/verbs/version.rb +0 -37
- data/lib/gloo/verbs/wait.rb +0 -42
data/lib/gloo/verbs/help.rb
DELETED
|
@@ -1,264 +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 help information.
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
module Gloo
|
|
8
|
-
module Verbs
|
|
9
|
-
class Help < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'help'.freeze
|
|
12
|
-
KEYWORD_SHORT = '?'.freeze
|
|
13
|
-
DEFAULT_HELP = 'default_help'.freeze
|
|
14
|
-
HELP_NOT_FOUND_ERR = 'Help command could not be found:'.freeze
|
|
15
|
-
|
|
16
|
-
DISPATCH = {
|
|
17
|
-
settings: 'show_settings',
|
|
18
|
-
keywords: 'show_keywords',
|
|
19
|
-
verb: 'show_verbs',
|
|
20
|
-
verbs: 'show_verbs',
|
|
21
|
-
v: 'show_verbs',
|
|
22
|
-
obj: 'show_objs',
|
|
23
|
-
object: 'show_objs',
|
|
24
|
-
objects: 'show_objs',
|
|
25
|
-
o: 'show_objs',
|
|
26
|
-
topics: 'show_topics'
|
|
27
|
-
}.freeze
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
# Run the verb.
|
|
31
|
-
#
|
|
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
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
#
|
|
110
|
-
# Get the Verb's keyword.
|
|
111
|
-
#
|
|
112
|
-
def self.keyword
|
|
113
|
-
return KEYWORD
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
#
|
|
117
|
-
# Get the Verb's keyword shortcut.
|
|
118
|
-
#
|
|
119
|
-
def self.keyword_shortcut
|
|
120
|
-
return KEYWORD_SHORT
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# ---------------------------------------------------------------------
|
|
124
|
-
# Private functions
|
|
125
|
-
# ---------------------------------------------------------------------
|
|
126
|
-
|
|
127
|
-
private
|
|
128
|
-
|
|
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
|
-
#
|
|
176
|
-
# Write output to it and show it unless we are in
|
|
177
|
-
# silent mode.
|
|
178
|
-
#
|
|
179
|
-
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
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
#
|
|
234
|
-
# Show application settings.
|
|
235
|
-
#
|
|
236
|
-
def show_settings
|
|
237
|
-
$settings.show
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
#
|
|
241
|
-
# Show all keywords: verbs and objects.
|
|
242
|
-
#
|
|
243
|
-
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
|
|
260
|
-
end
|
|
261
|
-
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
end
|
data/lib/gloo/verbs/if.rb
DELETED
|
@@ -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 true, do something.
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
module Gloo
|
|
8
|
-
module Verbs
|
|
9
|
-
class If < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'if'.freeze
|
|
12
|
-
KEYWORD_SHORT = 'if'.freeze
|
|
13
|
-
THEN = 'then'.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_true( value )
|
|
24
|
-
|
|
25
|
-
run_then
|
|
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 if command.
|
|
51
|
-
#
|
|
52
|
-
def value_tokens
|
|
53
|
-
value = @tokens.before_token( THEN )
|
|
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_true( 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 == true
|
|
73
|
-
eval_result = true if result.is_a?( Numeric ) && result != 0
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
return eval_result
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
#
|
|
80
|
-
# Run the 'then' command.
|
|
81
|
-
#
|
|
82
|
-
def run_then
|
|
83
|
-
cmd = @tokens.expr_after( THEN )
|
|
84
|
-
i = $engine.parser.parse_immediate cmd
|
|
85
|
-
return unless i
|
|
86
|
-
|
|
87
|
-
i.run
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
data/lib/gloo/verbs/list.rb
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# Author:: Eric Crane (mailto:eric.crane@mac.com)
|
|
2
|
-
# Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
# List out an object and it's children.
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
module Gloo
|
|
8
|
-
module Verbs
|
|
9
|
-
class List < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'list'.freeze
|
|
12
|
-
KEYWORD_SHORT = '.'.freeze
|
|
13
|
-
TARGET_MISSING_ERR = 'Object does not exist: '.freeze
|
|
14
|
-
|
|
15
|
-
#
|
|
16
|
-
# Run the verb.
|
|
17
|
-
#
|
|
18
|
-
def run
|
|
19
|
-
levels = determine_levels
|
|
20
|
-
target = self.determine_target
|
|
21
|
-
obj = target.resolve
|
|
22
|
-
if obj
|
|
23
|
-
show_target( obj, levels )
|
|
24
|
-
else
|
|
25
|
-
$engine.err "#{TARGET_MISSING_ERR} #{target}"
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
# Determine the target object for the show command.
|
|
31
|
-
#
|
|
32
|
-
def determine_target
|
|
33
|
-
return $engine.heap.context if @tokens.token_count == 1
|
|
34
|
-
|
|
35
|
-
return Gloo::Core::Pn.new( @tokens.second )
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
# Get the Verb's keyword.
|
|
40
|
-
#
|
|
41
|
-
def self.keyword
|
|
42
|
-
return KEYWORD
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
#
|
|
46
|
-
# Get the Verb's keyword shortcut.
|
|
47
|
-
#
|
|
48
|
-
def self.keyword_shortcut
|
|
49
|
-
return KEYWORD_SHORT
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# ---------------------------------------------------------------------
|
|
53
|
-
# Private functions
|
|
54
|
-
# ---------------------------------------------------------------------
|
|
55
|
-
|
|
56
|
-
private
|
|
57
|
-
|
|
58
|
-
#
|
|
59
|
-
# Show the target object.
|
|
60
|
-
#
|
|
61
|
-
def show_target( obj, levels, indent = '' )
|
|
62
|
-
show_obj( obj, indent )
|
|
63
|
-
return if levels.zero?
|
|
64
|
-
|
|
65
|
-
obj.children.each do |o|
|
|
66
|
-
show_target( o, levels - 1, "#{indent} " )
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
#
|
|
71
|
-
# Show object in standard format.
|
|
72
|
-
#
|
|
73
|
-
def show_obj( obj, indent = ' ' )
|
|
74
|
-
if obj.multiline_value? && obj.value_is_array?
|
|
75
|
-
$log.show "#{indent}#{obj.name} [#{obj.type_display}] :"
|
|
76
|
-
obj.value.each do |line|
|
|
77
|
-
$log.show "#{indent} #{line}"
|
|
78
|
-
end
|
|
79
|
-
else
|
|
80
|
-
$log.show "#{indent}#{obj.name} [#{obj.type_display}] : #{obj.value}"
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
#
|
|
85
|
-
# Determine how many levels to show.
|
|
86
|
-
#
|
|
87
|
-
def determine_levels
|
|
88
|
-
# Check settings for the default value.
|
|
89
|
-
levels = $settings.list_indent
|
|
90
|
-
return levels if levels
|
|
91
|
-
|
|
92
|
-
# Last chance: use the default
|
|
93
|
-
return 1
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
data/lib/gloo/verbs/load.rb
DELETED
|
@@ -1,45 +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 Load < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'load'.freeze
|
|
12
|
-
KEYWORD_SHORT = '<'.freeze
|
|
13
|
-
MISSING_EXPR_ERR = 'Missing Expression!'.freeze
|
|
14
|
-
|
|
15
|
-
#
|
|
16
|
-
# Run the verb.
|
|
17
|
-
#
|
|
18
|
-
def run
|
|
19
|
-
fn = @tokens.second
|
|
20
|
-
|
|
21
|
-
if fn
|
|
22
|
-
$log.debug "Getting ready to load file: #{fn}"
|
|
23
|
-
$engine.persist_man.load fn
|
|
24
|
-
else
|
|
25
|
-
$engine.err MISSING_EXPR_ERR
|
|
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
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
data/lib/gloo/verbs/move.rb
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# Author:: Eric Crane (mailto:eric.crane@mac.com)
|
|
2
|
-
# Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
# Move an object to a new parent.
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
module Gloo
|
|
8
|
-
module Verbs
|
|
9
|
-
class Move < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'move'.freeze
|
|
12
|
-
KEYWORD_SHORT = 'mv'.freeze
|
|
13
|
-
TO = 'to'.freeze
|
|
14
|
-
MISSING_SRC_ERR = 'Object to move was not specified!'.freeze
|
|
15
|
-
MISSING_SRC_OBJ_ERR = 'Could not find object to move: '.freeze
|
|
16
|
-
MISSING_DST_ERR = "Move' must include 'to' parent object!".freeze
|
|
17
|
-
MISSING_DST_OBJ_ERR = 'Could not resolve target: '.freeze
|
|
18
|
-
|
|
19
|
-
#
|
|
20
|
-
# Run the verb.
|
|
21
|
-
#
|
|
22
|
-
def run
|
|
23
|
-
dst = lookup_dst
|
|
24
|
-
return if dst.nil?
|
|
25
|
-
|
|
26
|
-
o = lookup_obj
|
|
27
|
-
return unless o
|
|
28
|
-
|
|
29
|
-
o.parent.remove_child o
|
|
30
|
-
dst.add_child o
|
|
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
|
-
# Lookup the object that we're moving.
|
|
55
|
-
#
|
|
56
|
-
def lookup_obj
|
|
57
|
-
arr = @tokens.before_token( TO )
|
|
58
|
-
if arr.count == 1
|
|
59
|
-
$engine.err MISSING_SRC_ERR
|
|
60
|
-
return
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
name = arr[ 1 ]
|
|
64
|
-
pn = Gloo::Core::Pn.new name
|
|
65
|
-
o = pn.resolve
|
|
66
|
-
|
|
67
|
-
$engine.err( "#{MISSING_SRC_OBJ_ERR} #{name}" ) unless o
|
|
68
|
-
return o
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
# Lookup destination, the new parent object.
|
|
73
|
-
#
|
|
74
|
-
def lookup_dst
|
|
75
|
-
dst = @tokens.after_token( TO )
|
|
76
|
-
unless dst
|
|
77
|
-
$engine.err MISSING_DST_ERR
|
|
78
|
-
return nil
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
pn = Gloo::Core::Pn.new dst
|
|
82
|
-
o = pn.resolve
|
|
83
|
-
$engine.err( "#{MISSING_DST_OBJ_ERR} '#{dst}'" ) unless o
|
|
84
|
-
return o
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
data/lib/gloo/verbs/put.rb
DELETED
|
@@ -1,94 +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 Put < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'put'.freeze
|
|
12
|
-
KEYWORD_SHORT = 'p'.freeze
|
|
13
|
-
INTO = 'into'.freeze
|
|
14
|
-
MISSING_EXPR_ERR = 'Missing Expression!'.freeze
|
|
15
|
-
INTO_MISSING_ERR = 'Target (into) missing!'.freeze
|
|
16
|
-
TARGET_ERR = 'Target could not be resolved: '.freeze
|
|
17
|
-
|
|
18
|
-
#
|
|
19
|
-
# Run the verb.
|
|
20
|
-
#
|
|
21
|
-
def run
|
|
22
|
-
value = fetch_value_tokens
|
|
23
|
-
return if value.nil?
|
|
24
|
-
|
|
25
|
-
target = lookup_target
|
|
26
|
-
return if target.nil?
|
|
27
|
-
|
|
28
|
-
update_target target, value
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
# Get the Verb's keyword.
|
|
33
|
-
#
|
|
34
|
-
def self.keyword
|
|
35
|
-
return KEYWORD
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
# Get the Verb's keyword shortcut.
|
|
40
|
-
#
|
|
41
|
-
def self.keyword_shortcut
|
|
42
|
-
return KEYWORD_SHORT
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# ---------------------------------------------------------------------
|
|
46
|
-
# Private functions
|
|
47
|
-
# ---------------------------------------------------------------------
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
|
|
51
|
-
#
|
|
52
|
-
# Get the value that is being put.
|
|
53
|
-
#
|
|
54
|
-
def fetch_value_tokens
|
|
55
|
-
value = @tokens.before_token( INTO )
|
|
56
|
-
if value.nil? || ( value.count <= 1 )
|
|
57
|
-
$engine.err MISSING_EXPR_ERR
|
|
58
|
-
return nil
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# The first token is the verb, so we drop it.
|
|
62
|
-
return value[ 1..-1 ]
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
#
|
|
66
|
-
# Lookup the target of the put command.
|
|
67
|
-
#
|
|
68
|
-
def lookup_target
|
|
69
|
-
target = @tokens.after_token( INTO )
|
|
70
|
-
return target if target
|
|
71
|
-
|
|
72
|
-
$engine.err INTO_MISSING_ERR
|
|
73
|
-
return nil
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
#
|
|
77
|
-
# Update the target with the new value.
|
|
78
|
-
#
|
|
79
|
-
def update_target( target, value )
|
|
80
|
-
pn = Gloo::Core::Pn.new target
|
|
81
|
-
o = pn.resolve
|
|
82
|
-
if o.nil?
|
|
83
|
-
$engine.err "#{TARGET_ERR} #{target}"
|
|
84
|
-
elsif value.count.positive?
|
|
85
|
-
expr = Gloo::Expr::Expression.new( value )
|
|
86
|
-
result = expr.evaluate
|
|
87
|
-
o.set_value result
|
|
88
|
-
$engine.heap.it.set_to result
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
data/lib/gloo/verbs/quit.rb
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Author:: Eric Crane (mailto:eric.crane@mac.com)
|
|
2
|
-
# Copyright:: Copyright (c) 2019 Eric Crane. All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
# Quit the running gloo engine.
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
module Gloo
|
|
8
|
-
module Verbs
|
|
9
|
-
class Quit < Gloo::Core::Verb
|
|
10
|
-
|
|
11
|
-
KEYWORD = 'quit'.freeze
|
|
12
|
-
KEYWORD_SHORT = 'q'.freeze
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
# Run the verb.
|
|
16
|
-
#
|
|
17
|
-
# We'll mark the application as not running and let the
|
|
18
|
-
# engine stop gracefully next time through the loop.
|
|
19
|
-
#
|
|
20
|
-
def run
|
|
21
|
-
$engine.stop_running
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
#
|
|
25
|
-
# Get the Verb's keyword.
|
|
26
|
-
#
|
|
27
|
-
def self.keyword
|
|
28
|
-
return KEYWORD
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
# Get the Verb's keyword shortcut.
|
|
33
|
-
#
|
|
34
|
-
def self.keyword_shortcut
|
|
35
|
-
return KEYWORD_SHORT
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|