Module: ZTK::ANSI
Overview
ANSI Mixin Module
Standard use is to mix this module into String.
Constant Summary
- ANSI_COLORS =
Defines our ANSI color codes
{ :black => 30, :red => 31, :green => 32, :yellow => 33, :blue => 34, :magenta => 35, :cyan => 36, :white => 37 }
- ANSI_ATTRIBUTES =
Defines our ANSI attribute codes
{ :normal => 0, :bold => 1 }
- ANSI_REGEX =
Defines a RegEx for stripping ANSI codes from strings
/\e\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]/
Instance Method Summary (collapse)
-
- (String) black(string = nil, &block)
Sets the foreground color to black for the supplied string.
-
- (String) blue(string = nil, &block)
Sets the foreground color to blue for the supplied string.
-
- (String) bold(string = nil, &block)
Sets the foreground color to bold for the supplied string.
-
- (Boolean) build_ansi_methods(hash)
Build ANSI Methods.
-
- (String) cyan(string = nil, &block)
Sets the foreground color to cyan for the supplied string.
- - (Object) goto(x = 0, y = 0)
-
- (String) green(string = nil, &block)
Sets the foreground color to green for the supplied string.
-
- (String) magenta(string = nil, &block)
Sets the foreground color to magenta for the supplied string.
-
- (String) normal(string = nil, &block)
Sets the foreground color to normal for the supplied string.
-
- (String) red(string = nil, &block)
Sets the foreground color to red for the supplied string.
- - (Object) reset(string = nil, &block)
-
- (String) uncolor(string = nil, &block)
Uncolor String.
-
- (String) white(string = nil, &block)
Sets the foreground color to white for the supplied string.
-
- (String) yellow(string = nil, &block)
Sets the foreground color to yellow for the supplied string.
Instance Method Details
- (String) black(string = nil, &block)
Sets the foreground color to black for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (String) blue(string = nil, &block)
Sets the foreground color to blue for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (String) bold(string = nil, &block)
Sets the foreground color to bold for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 87
|
- (Boolean) build_ansi_methods(hash)
Build ANSI Methods
Dynamicly constructs our color methods based on the ANSI code hash passed in.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/ztk/ansi.rb', line 110 def build_ansi_methods(hash) hash.each do |key, value| define_method(key) do |string=nil, &block| result = Array.new result << %(\e[#{value}m) if block_given? result << block.call elsif string.respond_to?(:to_str) result << string.to_str elsif respond_to?(:to_str) result << to_str else return result end result << %(\e[0m) result.join end end true end |
- (String) cyan(string = nil, &block)
Sets the foreground color to cyan for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (Object) goto(x = 0, y = 0)
172 173 174 |
# File 'lib/ztk/ansi.rb', line 172 def goto(x=0, y=0) %(\e[#{x};#{y}H) end |
- (String) green(string = nil, &block)
Sets the foreground color to green for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (String) magenta(string = nil, &block)
Sets the foreground color to magenta for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (String) normal(string = nil, &block)
Sets the foreground color to normal for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 87
|
- (String) red(string = nil, &block)
Sets the foreground color to red for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (Object) reset(string = nil, &block)
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/ztk/ansi.rb', line 155 def reset(string=nil, &block) result = Array.new result << %(\e[2J) if block_given? result << block.call elsif string.respond_to?(:to_str) result << string.to_str elsif respond_to?(:to_str) result << to_str else return result end result.join end |
- (String) uncolor(string = nil, &block)
Uncolor String
Removes ANSI code sequences from a string.
143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/ztk/ansi.rb', line 143 def uncolor(string=nil, &block) if block_given? block.call.to_str.gsub(ANSI_REGEX, '') elsif string.respond_to?(:to_str) string.to_str.gsub(ANSI_REGEX, '') elsif respond_to?(:to_str) to_str.gsub(ANSI_REGEX, '') else '' end end |
- (String) white(string = nil, &block)
Sets the foreground color to white for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|
- (String) yellow(string = nil, &block)
Sets the foreground color to yellow for the supplied string.
|
# File 'lib/ztk/ansi.rb', line 33
|