highline 1.7.10 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +5 -0
- data/.rubocop.yml +84 -0
- data/.simplecov +5 -0
- data/.travis.yml +35 -9
- data/Changelog.md +214 -15
- data/Gemfile +16 -5
- data/README.md +202 -0
- data/Rakefile +8 -20
- data/appveyor.yml +37 -0
- data/examples/ansi_colors.rb +6 -11
- data/examples/asking_for_arrays.rb +6 -2
- data/examples/basic_usage.rb +31 -21
- data/examples/color_scheme.rb +11 -10
- data/examples/get_character.rb +8 -4
- data/examples/limit.rb +4 -0
- data/examples/menus.rb +16 -10
- data/examples/overwrite.rb +9 -5
- data/examples/page_and_wrap.rb +5 -4
- data/examples/password.rb +4 -0
- data/examples/repeat_entry.rb +10 -5
- data/examples/trapping_eof.rb +2 -1
- data/examples/using_readline.rb +2 -1
- data/highline.gemspec +25 -27
- data/lib/highline/builtin_styles.rb +129 -0
- data/lib/highline/color_scheme.rb +49 -32
- data/lib/highline/compatibility.rb +11 -4
- data/lib/highline/custom_errors.rb +57 -0
- data/lib/highline/import.rb +19 -12
- data/lib/highline/io_console_compatible.rb +37 -0
- data/lib/highline/list.rb +177 -0
- data/lib/highline/list_renderer.rb +261 -0
- data/lib/highline/menu/item.rb +32 -0
- data/lib/highline/menu.rb +306 -111
- data/lib/highline/paginator.rb +52 -0
- data/lib/highline/question/answer_converter.rb +103 -0
- data/lib/highline/question.rb +281 -131
- data/lib/highline/question_asker.rb +150 -0
- data/lib/highline/simulate.rb +24 -13
- data/lib/highline/statement.rb +88 -0
- data/lib/highline/string.rb +36 -0
- data/lib/highline/string_extensions.rb +83 -64
- data/lib/highline/style.rb +196 -63
- data/lib/highline/template_renderer.rb +62 -0
- data/lib/highline/terminal/io_console.rb +36 -0
- data/lib/highline/terminal/ncurses.rb +38 -0
- data/lib/highline/terminal/unix_stty.rb +51 -0
- data/lib/highline/terminal.rb +190 -0
- data/lib/highline/version.rb +3 -1
- data/lib/highline/wrapper.rb +53 -0
- data/lib/highline.rb +390 -788
- metadata +56 -35
- data/INSTALL +0 -59
- data/README.rdoc +0 -74
- data/lib/highline/system_extensions.rb +0 -254
- data/setup.rb +0 -1360
- data/test/string_methods.rb +0 -32
- data/test/tc_color_scheme.rb +0 -96
- data/test/tc_highline.rb +0 -1402
- data/test/tc_import.rb +0 -52
- data/test/tc_menu.rb +0 -439
- data/test/tc_simulator.rb +0 -33
- data/test/tc_string_extension.rb +0 -33
- data/test/tc_string_highline.rb +0 -38
- data/test/tc_style.rb +0 -578
data/test/string_methods.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# string_methods.rb
|
2
|
-
#
|
3
|
-
# Created by Richard LeBer 2011-06-27
|
4
|
-
#
|
5
|
-
# This is Free Software. See LICENSE and COPYING for details.
|
6
|
-
#
|
7
|
-
# String class convenience methods
|
8
|
-
|
9
|
-
module StringMethods
|
10
|
-
def test_color
|
11
|
-
assert_equal("\e[34mstring\e[0m", @string.color(:blue))
|
12
|
-
assert_equal("\e[1m\e[47mstring\e[0m", @string.color(:bold,:on_white))
|
13
|
-
assert_equal("\e[45mstring\e[0m", @string.on(:magenta))
|
14
|
-
assert_equal("\e[36mstring\e[0m", @string.cyan)
|
15
|
-
assert_equal("\e[41m\e[5mstring\e[0m\e[0m", @string.blink.on_red)
|
16
|
-
assert_equal("\e[38;5;137mstring\e[0m", @string.color(:rgb_906030))
|
17
|
-
assert_equal("\e[38;5;101mstring\e[0m", @string.rgb('606030'))
|
18
|
-
assert_equal("\e[38;5;107mstring\e[0m", @string.rgb('60','90','30'))
|
19
|
-
assert_equal("\e[38;5;107mstring\e[0m", @string.rgb(96,144,48))
|
20
|
-
assert_equal("\e[38;5;173mstring\e[0m", @string.rgb_c06030)
|
21
|
-
assert_equal("\e[48;5;137mstring\e[0m", @string.color(:on_rgb_906030))
|
22
|
-
assert_equal("\e[48;5;101mstring\e[0m", @string.on_rgb('606030'))
|
23
|
-
assert_equal("\e[48;5;107mstring\e[0m", @string.on_rgb('60','90','30'))
|
24
|
-
assert_equal("\e[48;5;107mstring\e[0m", @string.on_rgb(96,144,48))
|
25
|
-
assert_equal("\e[48;5;173mstring\e[0m", @string.on_rgb_c06030)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_uncolor
|
29
|
-
colored_string = HighLine::String("\e[38;5;137mstring\e[0m")
|
30
|
-
assert_equal "string", colored_string.uncolor
|
31
|
-
end
|
32
|
-
end
|
data/test/tc_color_scheme.rb
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
# tc_color_scheme.rb
|
2
|
-
#
|
3
|
-
# Created by Jeremy Hinegardner on 2007-01-24.
|
4
|
-
# Copyright 2007 Jeremy Hinegardner. All rights reserved.
|
5
|
-
#
|
6
|
-
# This is Free Software. See LICENSE and COPYING for details.
|
7
|
-
|
8
|
-
require "test/unit"
|
9
|
-
|
10
|
-
require "highline"
|
11
|
-
require "stringio"
|
12
|
-
|
13
|
-
class TestColorScheme < Test::Unit::TestCase
|
14
|
-
def setup
|
15
|
-
@input = StringIO.new
|
16
|
-
@output = StringIO.new
|
17
|
-
@terminal = HighLine.new(@input, @output)
|
18
|
-
|
19
|
-
@old_color_scheme = HighLine.color_scheme
|
20
|
-
end
|
21
|
-
|
22
|
-
def teardown
|
23
|
-
HighLine.color_scheme = @old_color_scheme
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_using_color_scheme
|
27
|
-
assert_equal(false,HighLine.using_color_scheme?)
|
28
|
-
|
29
|
-
HighLine.color_scheme = HighLine::ColorScheme.new
|
30
|
-
assert_equal(true,HighLine.using_color_scheme?)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_scheme
|
34
|
-
HighLine.color_scheme = HighLine::SampleColorScheme.new
|
35
|
-
|
36
|
-
@terminal.say("This should be <%= color('warning yellow', :warning) %>.")
|
37
|
-
assert_equal("This should be \e[1m\e[33mwarning yellow\e[0m.\n",@output.string)
|
38
|
-
@output.rewind
|
39
|
-
|
40
|
-
@terminal.say("This should be <%= color('warning yellow', 'warning') %>.")
|
41
|
-
assert_equal("This should be \e[1m\e[33mwarning yellow\e[0m.\n",@output.string)
|
42
|
-
@output.rewind
|
43
|
-
|
44
|
-
@terminal.say("This should be <%= color('warning yellow', 'WarNing') %>.")
|
45
|
-
assert_equal("This should be \e[1m\e[33mwarning yellow\e[0m.\n",@output.string)
|
46
|
-
@output.rewind
|
47
|
-
|
48
|
-
# Check that keys are available, and as expected
|
49
|
-
assert_equal ["critical", "error", "warning", "notice", "info", "debug", "row_even", "row_odd"].sort,
|
50
|
-
HighLine.color_scheme.keys.sort
|
51
|
-
|
52
|
-
# Color scheme doesn't care if we use symbols or strings, and is case-insensitive
|
53
|
-
warning1 = HighLine.color_scheme[:warning]
|
54
|
-
warning2 = HighLine.color_scheme["warning"]
|
55
|
-
warning3 = HighLine.color_scheme[:wArning]
|
56
|
-
warning4 = HighLine.color_scheme["warniNg"]
|
57
|
-
assert_instance_of HighLine::Style, warning1
|
58
|
-
assert_instance_of HighLine::Style, warning2
|
59
|
-
assert_instance_of HighLine::Style, warning3
|
60
|
-
assert_instance_of HighLine::Style, warning4
|
61
|
-
assert_equal warning1, warning2
|
62
|
-
assert_equal warning1, warning3
|
63
|
-
assert_equal warning1, warning4
|
64
|
-
|
65
|
-
# Nonexistent keys return nil
|
66
|
-
assert_nil HighLine.color_scheme[:nonexistent]
|
67
|
-
|
68
|
-
# Same as above, for definitions
|
69
|
-
defn1 = HighLine.color_scheme.definition(:warning)
|
70
|
-
defn2 = HighLine.color_scheme.definition("warning")
|
71
|
-
defn3 = HighLine.color_scheme.definition(:wArning)
|
72
|
-
defn4 = HighLine.color_scheme.definition("warniNg")
|
73
|
-
assert_instance_of Array, defn1
|
74
|
-
assert_instance_of Array, defn2
|
75
|
-
assert_instance_of Array, defn3
|
76
|
-
assert_instance_of Array, defn4
|
77
|
-
assert_equal [:bold, :yellow], defn1
|
78
|
-
assert_equal [:bold, :yellow], defn2
|
79
|
-
assert_equal [:bold, :yellow], defn3
|
80
|
-
assert_equal [:bold, :yellow], defn4
|
81
|
-
assert_nil HighLine.color_scheme.definition(:nonexistent)
|
82
|
-
|
83
|
-
color_scheme_hash = HighLine.color_scheme.to_hash
|
84
|
-
assert_instance_of Hash, color_scheme_hash
|
85
|
-
assert_equal ["critical", "error", "warning", "notice", "info", "debug", "row_even", "row_odd"].sort,
|
86
|
-
color_scheme_hash.keys.sort
|
87
|
-
assert_instance_of Array, HighLine.color_scheme.definition(:warning)
|
88
|
-
assert_equal [:bold, :yellow], HighLine.color_scheme.definition(:warning)
|
89
|
-
|
90
|
-
# turn it back off, should raise an exception
|
91
|
-
HighLine.color_scheme = @old_color_scheme
|
92
|
-
assert_raises(NameError) {
|
93
|
-
@terminal.say("This should be <%= color('nothing at all', :error) %>.")
|
94
|
-
}
|
95
|
-
end
|
96
|
-
end
|