highline 1.0.2 → 1.0.4
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.
- data/CHANGELOG +9 -1
- data/README +2 -2
- data/Rakefile +3 -3
- data/lib/highline.rb +25 -4
- data/lib/highline/import.rb +2 -0
- data/lib/highline/menu.rb +2 -0
- data/lib/highline/question.rb +3 -1
- data/test/tc_highline.rb +11 -0
- data/test/tc_import.rb +2 -0
- data/test/tc_menu.rb +2 -0
- data/test/ts_all.rb +2 -1
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -2,12 +2,20 @@
|
|
2
2
|
|
3
3
|
Below is a complete listing of changes for each revision of HighLine.
|
4
4
|
|
5
|
+
== 1.0.4
|
6
|
+
|
7
|
+
* Moved the HighLine project to Subversion.
|
8
|
+
* HighLine's color escapes can now be disabled.
|
9
|
+
* Fixed EOF bug introduced in the last release.
|
10
|
+
* Updated HighLine web page.
|
11
|
+
* Moved to a forked development/stable version numbering.
|
12
|
+
|
5
13
|
== 1.0.2
|
6
14
|
|
7
15
|
* Removed old and broken help tests.
|
8
16
|
* Fixed test case typo found by David A. Black.
|
9
17
|
* Added ERb escapes processing to lists, for coloring list items. Color escapes
|
10
|
-
|
18
|
+
do not add to list element size.
|
11
19
|
* HighLine now throws EOFError when input is exhausted.
|
12
20
|
|
13
21
|
== 1.0.1
|
data/README
CHANGED
@@ -27,5 +27,5 @@ See the INSTALL file for instructions.
|
|
27
27
|
|
28
28
|
== Questions and/or Comments
|
29
29
|
|
30
|
-
Feel free to email {James Edward Gray II}[mailto:james@grayproductions.net]
|
31
|
-
any questions.
|
30
|
+
Feel free to email {James Edward Gray II}[mailto:james@grayproductions.net] or
|
31
|
+
{Grregory Brown}[mailto:gregory.t.brown@gmail.com] with any questions.
|
data/Rakefile
CHANGED
@@ -24,15 +24,15 @@ end
|
|
24
24
|
|
25
25
|
desc "Upload current documentation to Rubyforge"
|
26
26
|
task :upload_docs => [:rdoc] do
|
27
|
-
sh "scp -r site/* " +
|
28
|
-
"bbazzarrakk@rubyforge.org:/var/www/gforge-projects/highline/"
|
29
27
|
sh "scp -r doc/html/* " +
|
30
28
|
"bbazzarrakk@rubyforge.org:/var/www/gforge-projects/highline/doc/"
|
29
|
+
sh "scp -r site/* " +
|
30
|
+
"bbazzarrakk@rubyforge.org:/var/www/gforge-projects/highline/"
|
31
31
|
end
|
32
32
|
|
33
33
|
spec = Gem::Specification.new do |spec|
|
34
34
|
spec.name = "highline"
|
35
|
-
spec.version = "1.0.
|
35
|
+
spec.version = "1.0.4"
|
36
36
|
spec.platform = Gem::Platform::RUBY
|
37
37
|
spec.summary = "HighLine is a high-level line oriented console interface."
|
38
38
|
spec.files = Dir.glob("{examples,lib,test}/**/*.rb").
|
data/lib/highline.rb
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
# Copyright 2005 Gray Productions. All rights reserved.
|
7
7
|
#
|
8
8
|
# See HighLine for documentation.
|
9
|
+
#
|
10
|
+
# This is Free Software. See LICENSE and COPYING for details
|
9
11
|
|
10
12
|
require "highline/question"
|
11
13
|
require "highline/menu"
|
@@ -28,6 +30,19 @@ class HighLine
|
|
28
30
|
class QuestionError < StandardError
|
29
31
|
# do nothing, just creating a unique error type
|
30
32
|
end
|
33
|
+
|
34
|
+
# The setting used to disable color output.
|
35
|
+
@@use_color = true
|
36
|
+
|
37
|
+
# Pass +false+ to _setting_ to turn off HighLine's color escapes.
|
38
|
+
def self.use_color=( setting )
|
39
|
+
@@use_color = setting
|
40
|
+
end
|
41
|
+
|
42
|
+
# Returns true if HighLine is currently using color escapes.
|
43
|
+
def self.use_color?
|
44
|
+
@@use_color
|
45
|
+
end
|
31
46
|
|
32
47
|
#
|
33
48
|
# Embed in a String to clear all previous ANSI sequences. This *MUST* be
|
@@ -168,8 +183,7 @@ class HighLine
|
|
168
183
|
if @question.confirm
|
169
184
|
# need to add a layer of scope to ask a question inside a
|
170
185
|
# question, without destroying instance data
|
171
|
-
context_change = self.class.new(
|
172
|
-
@wrap_at, @page_at )
|
186
|
+
context_change = self.class.new(@input, @output, @wrap_at, @page_at)
|
173
187
|
if @question.confirm == true
|
174
188
|
confirm_question = "Are you sure? "
|
175
189
|
else
|
@@ -264,8 +278,13 @@ class HighLine
|
|
264
278
|
# affected by. The _colors_ can be HighLine class constants, or symbols
|
265
279
|
# (:blue for BLUE, for example). A CLEAR will automatically be embedded to
|
266
280
|
# the end of the returned String.
|
281
|
+
#
|
282
|
+
# This method returns the original _string_ unchanged if HighLine::use_color?
|
283
|
+
# is +false+.
|
267
284
|
#
|
268
285
|
def color( string, *colors )
|
286
|
+
return string unless self.class.use_color?
|
287
|
+
|
269
288
|
colors.map! do |c|
|
270
289
|
if c.is_a?(Symbol)
|
271
290
|
self.class.const_get(c.to_s.upcase)
|
@@ -523,6 +542,8 @@ class HighLine
|
|
523
542
|
#
|
524
543
|
# If Question's _readline_ property is set, that library will be used to
|
525
544
|
# fetch input. *WARNING*: This ignores the currently set input stream.
|
545
|
+
#
|
546
|
+
# Raises EOFError if input is exhausted.
|
526
547
|
#
|
527
548
|
def get_line( )
|
528
549
|
if @question.readline
|
@@ -549,6 +570,8 @@ class HighLine
|
|
549
570
|
|
550
571
|
answer
|
551
572
|
else
|
573
|
+
raise EOFError, "The input stream is exhausted." if @input.eof?
|
574
|
+
|
552
575
|
@question.change_case(@question.remove_whitespace(@input.gets))
|
553
576
|
end
|
554
577
|
end
|
@@ -561,8 +584,6 @@ class HighLine
|
|
561
584
|
# Raises EOFError if input is exhausted.
|
562
585
|
#
|
563
586
|
def get_response( )
|
564
|
-
raise EOFError, "The input stream is exhausted." if @input.eof?
|
565
|
-
|
566
587
|
if @question.character.nil?
|
567
588
|
if @question.echo == true and @question.limit.nil?
|
568
589
|
get_line
|
data/lib/highline/import.rb
CHANGED
data/lib/highline/menu.rb
CHANGED
data/lib/highline/question.rb
CHANGED
data/test/tc_highline.rb
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
#
|
5
5
|
# Created by James Edward Gray II on 2005-04-26.
|
6
6
|
# Copyright 2005 Gray Productions. All rights reserved.
|
7
|
+
#
|
8
|
+
# This is Free Software. See LICENSE and COPYING for details.
|
7
9
|
|
8
10
|
require "test/unit"
|
9
11
|
|
@@ -155,6 +157,15 @@ class TestHighLine < Test::Unit::TestCase
|
|
155
157
|
"<%= color('blinking on red', :blink, :on_red) %>!" )
|
156
158
|
assert_equal( "This should be \e[5m\e[41mblinking on red\e[0m!\n",
|
157
159
|
@output.string )
|
160
|
+
|
161
|
+
@output.truncate(@output.rewind)
|
162
|
+
|
163
|
+
# turn off color
|
164
|
+
old_setting = HighLine.use_color?
|
165
|
+
assert_nothing_raised(Exception) { HighLine.use_color = false }
|
166
|
+
@terminal.say("This should be <%= color('cyan', CYAN) %>!")
|
167
|
+
assert_equal("This should be cyan!\n", @output.string)
|
168
|
+
HighLine.use_color = old_setting
|
158
169
|
end
|
159
170
|
|
160
171
|
def test_confirm
|
data/test/tc_import.rb
CHANGED
data/test/tc_menu.rb
CHANGED
data/test/ts_all.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: highline
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2006-02-
|
6
|
+
version: 1.0.4
|
7
|
+
date: 2006-02-26 00:00:00 -06:00
|
8
8
|
summary: HighLine is a high-level line oriented console interface.
|
9
9
|
require_paths:
|
10
10
|
- lib
|