Module: Lucid::Formatter::ANSIColor

Includes:
Term::ANSIColor
Included in:
Console
Defined in:
lib/lucid/formatter/ansicolor.rb

Overview

Defines aliases for colored output. You don’t invoke any methods from this module directly, but you can change the output colors by defining a LUCID_COLORS variable in your shell, very much like how you can tweak the familiar POSIX command ls with $LS_COLORS.

The colors that you can change are:

  • undefined - defaults to yellow

  • pending - defaults to yellow

  • pending_param - defaults to yellow,bold

  • failed - defaults to red

  • failed_param - defaults to red,bold

  • passed - defaults to green

  • passed_param - defaults to green,bold

  • outline - defaults to cyan

  • outline_param - defaults to cyan,bold

  • skipped - defaults to cyan

  • skipped_param - defaults to cyan,bold

  • comment - defaults to grey

  • tag - defaults to cyan

For instance, if your shell has a black background and a green font (like the “Homebrew” settings for OS X’ Terminal.app), you may want to override passed steps to be white instead of green.

Although not listed, you can also use grey.

Examples: (On Windows, use SET instead of export.)

export LUCID_COLORS="passed=white"
export LUCID_COLORS="passed=white,bold:passed_param=white,bold,underline"

To see what colors and effects are available, just run this in your shell:

ruby -e "require 'rubygems'; require 'term/ansicolor'; puts Lucid::Term::ANSIColor.attributes"

Constant Summary collapse

ALIASES =
Hash.new do |h,k|
  if k.to_s =~ /(.*)_param/
    h[$1] + ',bold'
  end
end.merge({
  'undefined' => 'yellow',
  'pending'   => 'yellow',
  'failed'    => 'red',
  'passed'    => 'green',
  'outline'   => 'cyan',
  'skipped'   => 'cyan',
  'comment'   => 'grey',
  'tag'       => 'cyan'
})

Constants included from Term::ANSIColor

Term::ANSIColor::ATTRIBUTES, Term::ANSIColor::ATTRIBUTE_NAMES, Term::ANSIColor::COLORED_REGEXP

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Term::ANSIColor

attributes, coloring=, coloring?, included, #uncolored

Class Method Details

.define_greyObject

:nodoc:



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
135
136
# File 'lib/lucid/formatter/ansicolor.rb', line 110

def self.define_grey #:nodoc:
  begin
    gem 'genki-ruby-terminfo'
    require 'terminfo'
    case TermInfo.default_object.tigetnum('colors')
    when 0
      raise "Your terminal doesn't support colors."
    when 1
      ::Lucid::Term::ANSIColor.coloring = false
      alias grey white
    when 2..8
      alias grey white
    else
      define_real_grey
    end
  rescue Exception => e
    if e.class.name == 'TermInfo::TermInfoError'
      STDERR.puts '*** WARNING ***'
      STDERR.puts "You have the genki-ruby-terminfo gem installed, but you haven't set your TERM variable."
      STDERR.puts 'Try setting it to TERM=xterm-256color to get grey color in output.'
      STDERR.puts "\n"
      alias grey white
    else
      define_real_grey
    end
  end
end

.define_real_greyObject

:nodoc:



138
139
140
141
142
143
144
145
146
# File 'lib/lucid/formatter/ansicolor.rb', line 138

def self.define_real_grey #:nodoc:
  def grey(string) #:nodoc:
    if ::Lucid::Term::ANSIColor.coloring?
      "\e[90m#{string}\e[0m"
    else
      string
    end
  end
end

Instance Method Details

#cukes(n) ⇒ Object



150
151
152
# File 'lib/lucid/formatter/ansicolor.rb', line 150

def cukes(n)
  ('(::) ' * n).strip
end

#green_cukes(n) ⇒ Object



154
155
156
# File 'lib/lucid/formatter/ansicolor.rb', line 154

def green_cukes(n)
  blink(green(cukes(n)))
end

#grey(string) ⇒ Object

:nodoc:



139
140
141
142
143
144
145
# File 'lib/lucid/formatter/ansicolor.rb', line 139

def grey(string) #:nodoc:
  if ::Lucid::Term::ANSIColor.coloring?
    "\e[90m#{string}\e[0m"
  else
    string
  end
end

#red_cukes(n) ⇒ Object



158
159
160
# File 'lib/lucid/formatter/ansicolor.rb', line 158

def red_cukes(n)
  blink(red(cukes(n)))
end

#yellow_cukes(n) ⇒ Object



162
163
164
# File 'lib/lucid/formatter/ansicolor.rb', line 162

def yellow_cukes(n)
  blink(yellow(cukes(n)))
end