term-ansicolor 0.0.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +4 -0
- data/README.en +4 -1
- data/Rakefile +47 -38
- data/VERSION +1 -1
- data/examples/example.rb +9 -1
- data/lib/term/ansicolor.rb +80 -63
- metadata +8 -7
data/CHANGES
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
2004-12-23 * 1.0.0 * Added Term::ANSIColor.coloring[?=]? methods.
|
2
|
+
Thanks Thomas Husterer for the contribution.
|
3
|
+
* Minor cleanup of code.
|
4
|
+
* Documented visible methods in the module.
|
1
5
|
2004-09-28 * 0.0.4 * First release on Rubyforge
|
2
6
|
* Supports Rubygems now
|
3
7
|
2003-10-09 * 0.0.3 * Added uncolored method as suggested by
|
data/README.en
CHANGED
@@ -5,12 +5,15 @@ Just type into the command line as root:
|
|
5
5
|
|
6
6
|
# ruby install.rb
|
7
7
|
|
8
|
+
Or if you prefer using Rake, try:
|
9
|
+
|
10
|
+
# rake install
|
11
|
+
|
8
12
|
Documentation
|
9
13
|
=============
|
10
14
|
|
11
15
|
Look into examples/example.rb to get an idea how this library is used.
|
12
16
|
|
13
|
-
|
14
17
|
Author
|
15
18
|
======
|
16
19
|
|
data/Rakefile
CHANGED
@@ -8,65 +8,74 @@ include Config
|
|
8
8
|
PKG_NAME = 'term-ansicolor'
|
9
9
|
PKG_VERSION = File.read('VERSION').chomp
|
10
10
|
PKG_FILES = Dir.glob("**/*").delete_if { |item|
|
11
|
-
|
11
|
+
item.include?("CVS") or item.include?("pkg")
|
12
12
|
}
|
13
13
|
|
14
14
|
desc "Installing library"
|
15
15
|
task :install do
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
libdir = CONFIG["sitelibdir"]
|
17
|
+
dest = File.join(libdir, 'term')
|
18
|
+
install('lib/term/ansicolor.rb', dest)
|
19
19
|
end
|
20
20
|
|
21
|
-
|
21
|
+
desc "Making rdoc documentation"
|
22
|
+
task :doc do
|
23
|
+
load "make_doc.rb"
|
24
|
+
end
|
25
|
+
|
26
|
+
task :clean do
|
27
|
+
rm_r 'doc'
|
28
|
+
end
|
22
29
|
|
23
|
-
|
30
|
+
spec = Gem::Specification.new do |s|
|
31
|
+
#### Basic information.
|
24
32
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
33
|
+
s.name = 'term-ansicolor'
|
34
|
+
s.version = PKG_VERSION
|
35
|
+
s.summary = "Ruby library that colors strings using ANSI escape sequences"
|
36
|
+
s.description = ""
|
29
37
|
|
30
|
-
|
38
|
+
#### Dependencies and requirements.
|
31
39
|
|
32
|
-
|
33
|
-
|
40
|
+
#s.add_dependency('log4r', '> 1.0.4')
|
41
|
+
#s.requirements << ""
|
34
42
|
|
35
|
-
|
43
|
+
s.files = PKG_FILES
|
36
44
|
|
37
|
-
|
45
|
+
#### C code extensions.
|
38
46
|
|
39
|
-
|
47
|
+
#s.extensions << "ext/extconf.rb"
|
40
48
|
|
41
|
-
|
49
|
+
#### Load-time details: library and application (you will need one or both).
|
42
50
|
|
43
|
-
|
44
|
-
|
51
|
+
s.require_path = 'lib' # Use these for libraries.
|
52
|
+
s.autorequire = 'term/ansicolor'
|
45
53
|
|
46
|
-
|
47
|
-
|
48
|
-
|
54
|
+
#s.bindir = "bin" # Use these for applications.
|
55
|
+
#s.executables = ["bla.rb"]
|
56
|
+
#s.default_executable = "bla.rb"
|
49
57
|
|
50
|
-
|
58
|
+
#### Documentation and testing.
|
51
59
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
# '--line-numbers'
|
60
|
+
#s.has_rdoc = true
|
61
|
+
#s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
|
62
|
+
#s.rdoc_options <<
|
63
|
+
# '--title' << 'Term::ANSIColor -- ANSI color escape sequences' <<
|
64
|
+
# '--main' << 'README' <<
|
65
|
+
# '--line-numbers'
|
59
66
|
|
60
|
-
|
67
|
+
#### Author and project details.
|
61
68
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
69
|
+
s.author = "Florian Frank"
|
70
|
+
s.email = "flori@ping.de"
|
71
|
+
s.homepage = "http://term-ansicolor.rubyforge.org"
|
72
|
+
s.rubyforge_project = "term-ansicolor"
|
66
73
|
end
|
67
74
|
|
68
75
|
Rake::GemPackageTask.new(spec) do |pkg|
|
69
|
-
|
70
|
-
|
76
|
+
pkg.need_tar = true
|
77
|
+
pkg.package_files += PKG_FILES
|
71
78
|
end
|
72
|
-
|
79
|
+
|
80
|
+
task :release => :package
|
81
|
+
# vim: set noet sw=2 ts=2:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
1.0.0
|
data/examples/example.rb
CHANGED
@@ -14,6 +14,14 @@ print Color.green + "green" + Color.clear, "\n"
|
|
14
14
|
print Color.on_red(Color.green("green")), "\n"
|
15
15
|
print Color.yellow { Color.on_black { "yellow on_black" } }, "\n\n"
|
16
16
|
|
17
|
+
# Or shortcut Term::ANSIColor by assignment:
|
18
|
+
c = Term::ANSIColor
|
19
|
+
|
20
|
+
print c.red, c.bold, "No Namespace cluttering (alternative):", c.clear, "\n"
|
21
|
+
print c.green + "green" + c.clear, "\n"
|
22
|
+
print c.on_red(c.green("green")), "\n"
|
23
|
+
print c.yellow { c.on_black { "yellow on_black" } }, "\n\n"
|
24
|
+
|
17
25
|
# Anyway, I don't define any of Term::ANSIColor's methods in this example
|
18
26
|
# and I want to keep it short:
|
19
27
|
include Term::ANSIColor
|
@@ -31,7 +39,7 @@ print clear, "clear", reset, reset, "reset", reset,
|
|
31
39
|
on_blue, "on_blue", reset, on_magenta, "on_magenta", reset,
|
32
40
|
on_cyan, "on_cyan", reset, on_white, "on_white", reset, "|\n\n"
|
33
41
|
|
34
|
-
print red, bold, "Usage as unary
|
42
|
+
print red, bold, "Usage as unary argument methods:", reset, "\n"
|
35
43
|
print clear("clear"), reset("reset"), bold("bold"), dark("dark"),
|
36
44
|
underscore("underscore"), blink("blink"), negative("negative"),
|
37
45
|
concealed("concealed"), "|\n",
|
data/lib/term/ansicolor.rb
CHANGED
@@ -1,78 +1,95 @@
|
|
1
1
|
module Term
|
2
|
+
module ANSIColor
|
3
|
+
@@attributes = [
|
4
|
+
[ :clear , 0 ],
|
5
|
+
[ :reset , 0 ], # synonym for :clear
|
6
|
+
[ :bold , 1 ],
|
7
|
+
[ :dark , 2 ],
|
8
|
+
[ :italic , 3 ], # not widely implemented
|
9
|
+
[ :underline , 4 ],
|
10
|
+
[ :underscore , 4 ], # synonym for :underline
|
11
|
+
[ :blink , 5 ],
|
12
|
+
[ :rapid_blink , 6 ], # not widely implemented
|
13
|
+
[ :negative , 7 ], # no reverse because of String#reverse
|
14
|
+
[ :concealed , 8 ],
|
15
|
+
[ :strikethrough, 9 ], # not widely implemented
|
16
|
+
[ :black , 30 ],
|
17
|
+
[ :red , 31 ],
|
18
|
+
[ :green , 32 ],
|
19
|
+
[ :yellow , 33 ],
|
20
|
+
[ :blue , 34 ],
|
21
|
+
[ :magenta , 35 ],
|
22
|
+
[ :cyan , 36 ],
|
23
|
+
[ :white , 37 ],
|
24
|
+
[ :on_black , 40 ],
|
25
|
+
[ :on_red , 41 ],
|
26
|
+
[ :on_green , 42 ],
|
27
|
+
[ :on_yellow , 43 ],
|
28
|
+
[ :on_blue , 44 ],
|
29
|
+
[ :on_magenta , 45 ],
|
30
|
+
[ :on_cyan , 46 ],
|
31
|
+
[ :on_white , 47 ],
|
32
|
+
]
|
2
33
|
|
3
|
-
module
|
34
|
+
# Returns true, if the coloring function of this module
|
35
|
+
# is switched on, false otherwise.
|
36
|
+
def self.coloring?
|
37
|
+
@@coloring
|
38
|
+
end
|
4
39
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
[ :underscore , 4 ], # synonym for :underline
|
13
|
-
[ :blink , 5 ],
|
14
|
-
[ :rapid_blink , 6 ], # not widely implemented
|
15
|
-
[ :negative , 7 ], # no reverse because of String#reverse
|
16
|
-
[ :concealed , 8 ],
|
17
|
-
[ :strikethrough, 9 ], # not widely implemented
|
18
|
-
[ :black , 30 ],
|
19
|
-
[ :red , 31 ],
|
20
|
-
[ :green , 32 ],
|
21
|
-
[ :yellow , 33 ],
|
22
|
-
[ :blue , 34 ],
|
23
|
-
[ :magenta , 35 ],
|
24
|
-
[ :cyan , 36 ],
|
25
|
-
[ :white , 37 ],
|
26
|
-
[ :on_black , 40 ],
|
27
|
-
[ :on_red , 41 ],
|
28
|
-
[ :on_green , 42 ],
|
29
|
-
[ :on_yellow , 43 ],
|
30
|
-
[ :on_blue , 44 ],
|
31
|
-
[ :on_magenta , 45 ],
|
32
|
-
[ :on_cyan , 46 ],
|
33
|
-
[ :on_white , 47 ],
|
34
|
-
]
|
40
|
+
# Turns the coloring on or off globally, so you can easily do
|
41
|
+
# this for example:
|
42
|
+
# Term::ANSIColor::coloring = STDOUT.isatty
|
43
|
+
def self.coloring=(val)
|
44
|
+
@@coloring = val
|
45
|
+
end
|
46
|
+
self.coloring = true
|
35
47
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
result =
|
48
|
+
@@attributes.each do |c, v|
|
49
|
+
eval %Q{
|
50
|
+
def #{c}(string = nil)
|
51
|
+
result = ''
|
52
|
+
result << "\e[#{v}m" if @@coloring
|
40
53
|
if block_given?
|
41
|
-
|
42
|
-
result << "\e[0m"
|
54
|
+
result << yield
|
43
55
|
elsif string
|
44
|
-
|
45
|
-
result << "\e[0m"
|
56
|
+
result << string
|
46
57
|
elsif respond_to?(:to_str)
|
47
|
-
|
48
|
-
|
58
|
+
result << self
|
59
|
+
else
|
60
|
+
return result #only switch on
|
49
61
|
end
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
62
|
+
result << "\e[0m" if @@coloring
|
63
|
+
result
|
64
|
+
end
|
65
|
+
}
|
66
|
+
end
|
54
67
|
|
55
|
-
|
68
|
+
# Regular expression that is used to scan for ANSI-sequences. It is used to
|
69
|
+
# uncolor strins.
|
70
|
+
COLORED_REGEXP = /\e\[([34][0-7]|[0-9])m/
|
56
71
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
72
|
+
# Returns an uncolored version of the string, that is all
|
73
|
+
# ANSI-sequences are stripped from the string.
|
74
|
+
def uncolored(string = nil) # :yields:
|
75
|
+
if block_given?
|
76
|
+
yield.gsub(COLORED_REGEXP, '')
|
77
|
+
elsif string
|
78
|
+
string.gsub(COLORED_REGEXP, '')
|
79
|
+
elsif respond_to?(:to_str)
|
80
|
+
gsub(COLORED_REGEXP, '')
|
81
|
+
else
|
82
|
+
''
|
83
|
+
end
|
66
84
|
end
|
67
|
-
end
|
68
85
|
|
69
|
-
|
70
|
-
|
71
|
-
def attributes
|
72
|
-
@@attributes.map { |c| c[0] }
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
86
|
+
module_function
|
76
87
|
|
88
|
+
# Returns an array of all Term::ANSIColor attributes as symbols.
|
89
|
+
def attributes
|
90
|
+
@@attributes.map { |c| c.first }
|
91
|
+
end
|
92
|
+
extend self
|
93
|
+
end
|
77
94
|
end
|
78
95
|
# vim: set et sw=2 ts=2:
|
metadata
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.
|
2
|
+
rubygems_version: 0.8.10
|
3
3
|
specification_version: 1
|
4
4
|
name: term-ansicolor
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0
|
7
|
-
date:
|
6
|
+
version: 1.0.0
|
7
|
+
date: 2005-04-15
|
8
8
|
summary: Ruby library that colors strings using ANSI escape sequences
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
|
-
author: Florian Frank
|
12
11
|
email: flori@ping.de
|
13
12
|
homepage: http://term-ansicolor.rubyforge.org
|
14
13
|
rubyforge_project: term-ansicolor
|
15
14
|
description: ''
|
16
|
-
autorequire:
|
15
|
+
autorequire: term/ansicolor
|
17
16
|
default_executable:
|
18
17
|
bindir: bin
|
19
18
|
has_rdoc: false
|
@@ -25,8 +24,12 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
25
24
|
version: 0.0.0
|
26
25
|
version:
|
27
26
|
platform: ruby
|
27
|
+
authors:
|
28
|
+
- Florian Frank
|
28
29
|
files:
|
29
30
|
- examples
|
31
|
+
- examples/cdiff.rb
|
32
|
+
- examples/example.rb
|
30
33
|
- CHANGES
|
31
34
|
- GPL
|
32
35
|
- README.en
|
@@ -34,8 +37,6 @@ files:
|
|
34
37
|
- VERSION
|
35
38
|
- install.rb
|
36
39
|
- lib
|
37
|
-
- examples/cdiff.rb
|
38
|
-
- examples/example.rb
|
39
40
|
- lib/term
|
40
41
|
- lib/term/ansicolor.rb
|
41
42
|
test_files: []
|