downup 0.4.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/downup-0.4.3.gem +0 -0
- data/examples/basic.rb +10 -0
- data/lib/downup/version.rb +1 -1
- data/lib/downup.rb +39 -15
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c807a7510191208226e0ec1f986945a8fdcbda7
|
4
|
+
data.tar.gz: fd88b648476543d72e5488aef01def58e593deaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 393abc7587df882bbaa94d9a46d73307ff8a882b8cb22cee8a65b609bbcac72330c521b073e7454dfade1407265d57fff6b6c210988bb3fa900d7a283b129c36
|
7
|
+
data.tar.gz: a4db31d8bdc4a4f45ce71ca189a58aed78254e7d4f78bc627add5d4072cb66eabe96ada96ffd9bf74e69284cd68a0629bba7abf2bb15a65446c3761aa8ed06c8
|
data/downup-0.4.3.gem
ADDED
Binary file
|
data/examples/basic.rb
CHANGED
@@ -31,3 +31,13 @@ puts Downup::Base.new(
|
|
31
31
|
default_color: :cyan,
|
32
32
|
selected_color: :bg_magenta
|
33
33
|
).prompt
|
34
|
+
|
35
|
+
options = {
|
36
|
+
"a" => "Cat",
|
37
|
+
"b" => "Dog",
|
38
|
+
"c" => "Kangaroo",
|
39
|
+
"d" => "Snake",
|
40
|
+
"e" => "Eel"
|
41
|
+
}
|
42
|
+
|
43
|
+
puts Downup::Base.new(options: options).prompt
|
data/lib/downup/version.rb
CHANGED
data/lib/downup.rb
CHANGED
@@ -17,6 +17,8 @@ module Downup
|
|
17
17
|
@default_color = default_color
|
18
18
|
@selected_color = selected_color
|
19
19
|
@header_proc = header_proc
|
20
|
+
@stdin = STDIN
|
21
|
+
@stdout = $stdout
|
20
22
|
end
|
21
23
|
|
22
24
|
def prompt(position = 0)
|
@@ -25,7 +27,7 @@ module Downup
|
|
25
27
|
header_proc.call
|
26
28
|
print_title
|
27
29
|
print_options
|
28
|
-
print "\n> "
|
30
|
+
stdout.print "\n> "
|
29
31
|
process_input read_char
|
30
32
|
end
|
31
33
|
|
@@ -36,7 +38,9 @@ module Downup
|
|
36
38
|
:selected_position,
|
37
39
|
:header_proc,
|
38
40
|
:selected_color,
|
39
|
-
:default_color
|
41
|
+
:default_color,
|
42
|
+
:stdin,
|
43
|
+
:stdout
|
40
44
|
|
41
45
|
def process_input(input)
|
42
46
|
case input
|
@@ -44,14 +48,27 @@ module Downup
|
|
44
48
|
prompt(selected_position - 1)
|
45
49
|
when "\e[B", "j"
|
46
50
|
prompt(selected_position + 1)
|
47
|
-
when
|
51
|
+
when *option_keys
|
52
|
+
prompt(option_keys.index(input))
|
48
53
|
when "\r"
|
54
|
+
execute_selection(input)
|
55
|
+
when "\u0003" then exit
|
56
|
+
else prompt(selected_position); end
|
57
|
+
end
|
58
|
+
|
59
|
+
def execute_selection(input)
|
60
|
+
case options
|
61
|
+
when Array
|
49
62
|
options[selected_position]
|
50
|
-
|
51
|
-
|
63
|
+
when Hash
|
64
|
+
options.fetch(option_keys[selected_position])
|
52
65
|
end
|
53
66
|
end
|
54
67
|
|
68
|
+
def option_keys
|
69
|
+
options.is_a?(Array) ? [] : options.keys
|
70
|
+
end
|
71
|
+
|
55
72
|
def position_selector(position)
|
56
73
|
case position
|
57
74
|
when -1 then options.count - 1
|
@@ -60,8 +77,15 @@ module Downup
|
|
60
77
|
end
|
61
78
|
|
62
79
|
def print_options
|
63
|
-
options
|
64
|
-
|
80
|
+
case options
|
81
|
+
when Array
|
82
|
+
options.each_with_index do |option, index|
|
83
|
+
stdout.puts colorize_option(option, index)
|
84
|
+
end
|
85
|
+
when Hash
|
86
|
+
options.each_with_index do |option_array, index|
|
87
|
+
stdout.puts colorize_option(option_array.join(": "), index)
|
88
|
+
end
|
65
89
|
end
|
66
90
|
end
|
67
91
|
|
@@ -75,20 +99,20 @@ module Downup
|
|
75
99
|
|
76
100
|
def print_title
|
77
101
|
return if title.nil?
|
78
|
-
puts "#{title}".red
|
102
|
+
stdout.puts "#{title}".red
|
79
103
|
end
|
80
104
|
|
81
105
|
def read_char
|
82
|
-
|
83
|
-
|
84
|
-
input =
|
106
|
+
stdin.echo = false
|
107
|
+
stdin.raw!
|
108
|
+
input = stdin.getc.chr
|
85
109
|
if input == "\e" then
|
86
|
-
input <<
|
87
|
-
input <<
|
110
|
+
input << stdin.read_nonblock(3) rescue nil
|
111
|
+
input << stdin.read_nonblock(2) rescue nil
|
88
112
|
end
|
89
113
|
ensure
|
90
|
-
|
91
|
-
|
114
|
+
stdin.echo = true
|
115
|
+
stdin.cooked!
|
92
116
|
return input
|
93
117
|
end
|
94
118
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: downup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Begin
|
@@ -56,6 +56,7 @@ files:
|
|
56
56
|
- bin/console
|
57
57
|
- bin/setup
|
58
58
|
- downup-0.3.3.gem
|
59
|
+
- downup-0.4.3.gem
|
59
60
|
- downup.gemspec
|
60
61
|
- examples/basic.rb
|
61
62
|
- lib/downup.rb
|