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 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
- item.include?("CVS") or item.include?("pkg")
11
+ item.include?("CVS") or item.include?("pkg")
12
12
  }
13
13
 
14
14
  desc "Installing library"
15
15
  task :install do
16
- libdir = CONFIG["sitelibdir"]
17
- dest = File.join(libdir, 'term')
18
- install('lib/term/ansicolor.rb', dest)
16
+ libdir = CONFIG["sitelibdir"]
17
+ dest = File.join(libdir, 'term')
18
+ install('lib/term/ansicolor.rb', dest)
19
19
  end
20
20
 
21
- spec = Gem::Specification.new do |s|
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
- #### Basic information.
30
+ spec = Gem::Specification.new do |s|
31
+ #### Basic information.
24
32
 
25
- s.name = 'term-ansicolor'
26
- s.version = PKG_VERSION
27
- s.summary = "Ruby library that colors strings using ANSI escape sequences"
28
- s.description = ""
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
- #### Dependencies and requirements.
38
+ #### Dependencies and requirements.
31
39
 
32
- #s.add_dependency('log4r', '> 1.0.4')
33
- #s.requirements << ""
40
+ #s.add_dependency('log4r', '> 1.0.4')
41
+ #s.requirements << ""
34
42
 
35
- s.files = PKG_FILES
43
+ s.files = PKG_FILES
36
44
 
37
- #### C code extensions.
45
+ #### C code extensions.
38
46
 
39
- #s.extensions << "ext/extconf.rb"
47
+ #s.extensions << "ext/extconf.rb"
40
48
 
41
- #### Load-time details: library and application (you will need one or both).
49
+ #### Load-time details: library and application (you will need one or both).
42
50
 
43
- s.require_path = 'lib' # Use these for libraries.
44
- #s.autorequire = 'term/ansicolor'
51
+ s.require_path = 'lib' # Use these for libraries.
52
+ s.autorequire = 'term/ansicolor'
45
53
 
46
- #s.bindir = "bin" # Use these for applications.
47
- #s.executables = ["bla.rb"]
48
- #s.default_executable = "bla.rb"
54
+ #s.bindir = "bin" # Use these for applications.
55
+ #s.executables = ["bla.rb"]
56
+ #s.default_executable = "bla.rb"
49
57
 
50
- #### Documentation and testing.
58
+ #### Documentation and testing.
51
59
 
52
- s.has_rdoc = false
53
- #s.has_rdoc = true
54
- #s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
55
- #s.rdoc_options <<
56
- # '--title' << 'Rake -- Ruby Make' <<
57
- # '--main' << 'README' <<
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
- #### Author and project details.
67
+ #### Author and project details.
61
68
 
62
- s.author = "Florian Frank"
63
- s.email = "flori@ping.de"
64
- s.homepage = "http://term-ansicolor.rubyforge.org"
65
- s.rubyforge_project = "term-ansicolor"
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
- pkg.need_tar = true
70
- pkg.package_files += PKG_FILES
76
+ pkg.need_tar = true
77
+ pkg.package_files += PKG_FILES
71
78
  end
72
- # vim: set et sw=4 ts=4:
79
+
80
+ task :release => :package
81
+ # vim: set noet sw=2 ts=2:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 1.0.0
@@ -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 functions:", reset, "\n"
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",
@@ -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 ANSIColor
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
- @@attributes = [
6
- [ :clear , 0 ],
7
- [ :reset , 0 ], # synonym for :clear
8
- [ :bold , 1 ],
9
- [ :dark , 2 ],
10
- [ :italic , 3 ], # not widely implemented
11
- [ :underline , 4 ],
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
- @@attributes.each do |c, v|
37
- eval %Q{
38
- def #{c.to_s}(string = nil)
39
- result = "\e[#{v}m"
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
- result << yield
42
- result << "\e[0m"
54
+ result << yield
43
55
  elsif string
44
- result << string
45
- result << "\e[0m"
56
+ result << string
46
57
  elsif respond_to?(:to_str)
47
- result << self
48
- result << "\e[0m"
58
+ result << self
59
+ else
60
+ return result #only switch on
49
61
  end
50
- return result
51
- end
52
- }
53
- end
62
+ result << "\e[0m" if @@coloring
63
+ result
64
+ end
65
+ }
66
+ end
54
67
 
55
- ColoredRegexp = /\e\[([34][0-7]|[0-9])m/
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
- def uncolored(string = nil)
58
- if block_given?
59
- yield.gsub(ColoredRegexp, '')
60
- elsif string
61
- string.gsub(ColoredRegexp, '')
62
- elsif respond_to?(:to_str)
63
- gsub(ColoredRegexp, '')
64
- else
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
- module_function
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.1
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.4
7
- date: 2004-09-29
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: []