highline 1.7.10 → 2.0.3
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 +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
|