term-ansicolor 0.0.4 → 1.0.0

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/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: []