console_cmdr 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed5bbea62199c0d50966eeac59187f5ef1bb0ddc
4
- data.tar.gz: c8e123361250caec9d0e45373557195a83aa95f5
3
+ metadata.gz: 601ff0285d317389e4a6ef22cf4060d9b99806c7
4
+ data.tar.gz: 81935978bdadac036b615e3843c716a581955771
5
5
  SHA512:
6
- metadata.gz: e57e3ee2f0c27e261e14d1358bcdfd3ef899d6e12889df2f437bd202318cf7cf4b214ffc1418378aaed6959d65dd472e6ea4fcc65bbb9aed75007870cdc52817
7
- data.tar.gz: 2d492f6244b21e09951bd99e27f4e653b4170cbfd77abc51e80b366367a28cb7f56176bc7a6fd4c6f5595f9d0868bda922f2e04de10cce64cf7a4a1795e5b297
6
+ metadata.gz: ee069686795d2674297fa3da000bf446db8ac62aca177ccee92003965abfd7433dd44f2db6db5a050a2d8e2dc52d09dd22119a8e7eeb27e4bea24a45590b834c
7
+ data.tar.gz: b634103b3ae5507c27609e4e17b382e710d67ce105ea84d2647ef4036e7ec5ae64fd71845742ef0158a3204b0a1ced684b2f5976872a091c4c99b0641df763ee
checksums.yaml.gz.sig CHANGED
@@ -1,4 +1 @@
1
- v����F���E#��s]M����NW&����#!��3c}O�������I�p""_���}Sy����tc�
2
- C�5`(xy���Im�=!�9�R�]��y�S�#�1 ���>@�&s�#.�t=|��=�]�'��ֺ�>�U�.)�����)(�
3
- MA��{׍���M��l�[����uz50���R��uH�
4
- %��B��W
1
+ G�i�@�SW��>M�i�`�`����:{�����*��-6�4Q����zb�$�`�P�����O��:��児A�J ih�b��4_<(|E�׺��5�
data.tar.gz.sig CHANGED
Binary file
data/lib/console_cmdr.rb CHANGED
@@ -9,7 +9,6 @@ require 'terminfo'
9
9
  require 'io/console'
10
10
 
11
11
 
12
-
13
12
  class ConsoleCmdr < Cmdr
14
13
 
15
14
  def initialize(pxindex: nil)
@@ -177,45 +176,11 @@ class ConsoleCmdr < Cmdr
177
176
  @keys = []
178
177
 
179
178
  if key.to_i.to_s == key and @input_selection and @input_selection.any?
180
- r = select_item(key.to_i-1)
181
- key = ''
182
- return r
183
- end
184
-
185
- parent = @pxi.parent.title if @pxi.parent
186
-
187
- a = @pxi.q?(@linebuffer+key)
188
-
189
- if a then
190
- unless @input_selection == a.map(&:title) then
191
- @input_selection = a.map(&:title)
192
- @selection = a.map.with_index do |x,i|
193
-
194
- branch = x.records.any? ? :branch : nil
195
-
196
- title = x.title
197
- # is the target a web page?
198
- title = title.green if x.target[0] == 'w'
199
- title << '>' if branch
200
-
201
- ["%d.%s" % [i+1, title], branch, x.desc.yellow]
202
-
203
- end
204
- print ("\b" * @linebuffer.length) + @selection.map \
205
- {|x| x.values_at(0,2).join ' '}.join(" | ") + "\n"
206
-
207
- end
208
- print ("\b" * @linebuffer.length)
179
+ key = select_item(key.to_i-1)
209
180
 
210
- if (@linebuffer[/\s/] or a.length == 1) and key == ' ' then
211
-
212
- @linebuffer.sub!(/\w+$/, @item_selected)
213
-
214
- end
215
- print @linebuffer + key
216
- else
217
- @input_selection = nil
218
181
  end
182
+
183
+ query key if key
219
184
 
220
185
  elsif key == :arrow_down or key == :arrow_right
221
186
 
@@ -293,8 +258,10 @@ class ConsoleCmdr < Cmdr
293
258
  oldlinebuffer = @linebuffer
294
259
  print ("\b" * oldlinebuffer.length)
295
260
 
261
+ type = @selection[-1][-1]
262
+ branch = @selection[i][1] == :branch
296
263
 
297
- if @selection[i][1] == :branch or append_command then
264
+ if branch or append_command or type == :message then
298
265
 
299
266
  if @linebuffer[-1] != ' ' then
300
267
  a = @linebuffer.split(/ /)
@@ -304,9 +271,12 @@ class ConsoleCmdr < Cmdr
304
271
 
305
272
  linebuffer.prepend @linebuffer
306
273
  execute_command = false
307
- else
308
- execute_command = true
274
+ else
275
+
276
+ execute_command = true unless type == :interactive
309
277
  end
278
+
279
+ execute_command = true if type == :message
310
280
 
311
281
  if @selection[i][1] == :branch then
312
282
  words = @linebuffer.split(/ /)
@@ -322,8 +292,67 @@ class ConsoleCmdr < Cmdr
322
292
  print rblankpadding
323
293
  print ("\b" * rblankpadding.length)
324
294
 
325
- execute_command ? "\r" : nil
295
+
296
+ return execute_command ? "\r" : (branch and type != :webpage) ? ' ' : nil
297
+
298
+ end
299
+
300
+ def query(key)
301
+
302
+ a = @pxi.q?(@linebuffer+key)
303
+
304
+ if a then
305
+
306
+ unless @input_selection == a.map(&:title) then
307
+ @input_selection = a.map(&:title)
308
+ @selection = a.map.with_index do |x,i|
309
+
310
+ branch = x.records.any? ? :branch : nil
311
+
312
+ title = x.title
313
+ # is the target a web page?
314
+ title = title.green if x.target[0] == 'w'
315
+ title << '>' if branch
316
+
317
+ ["%d.%s" % [i+1, title], branch, x.desc.yellow, target(x.target.to_s)]
318
+
319
+ end
320
+
321
+ print ("\b" * @linebuffer.length) + @selection.map \
322
+ {|x| x.values_at(0,2).join ' '}.join(" | ") + "\n"
326
323
 
324
+ end
325
+
326
+ print ("\b" * @linebuffer.length)
327
+
328
+ if (@linebuffer[/\s/] or a.length == 1) and key == ' ' then
329
+
330
+ @linebuffer.sub!(/\w+$/, @item_selected)
331
+
332
+ end
333
+
334
+ print @linebuffer + key
335
+
336
+ else
337
+
338
+ @input_selection = nil
339
+
340
+ end
341
+
327
342
  end
328
343
 
344
+ def target(c)
345
+
346
+ case c.to_sym
347
+ when :i
348
+ :interactive
349
+ when :w
350
+ :webpage
351
+ when :m
352
+ :message
353
+ else
354
+ :command
355
+ end
356
+ end
357
+
329
358
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: console_cmdr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file