Module: RSpec::Core::Formatters::ConsoleCodes
Relationships & Source Files | |
Defined in: | rspec-core/lib/rspec/core/formatters/console_codes.rb |
Overview
ConsoleCodes
provides helpers for formatting console output with ANSI codes, e.g. color’s and bold.
Constant Summary
-
VT100_CODES =
Internal use only
# File 'rspec-core/lib/rspec/core/formatters/console_codes.rb', line 8{ :black => 30, :red => 31, :green => 32, :yellow => 33, :blue => 34, :magenta => 35, :cyan => 36, :white => 37, :bold_black => '1;30', :bold_red => '1;31', :bold_green => '1;32', :bold_yellow => '1;33', :bold_blue => '1;34', :bold_magenta => '1;35', :bold_cyan => '1;36', :bold_white => '1;37', :bold => 1, }
-
VT100_CODE_VALUES =
Internal use only
# File 'rspec-core/lib/rspec/core/formatters/console_codes.rb', line 29VT100_CODES.invert
Class Method Summary
- .config_colors_to_methods Internal use only mod_func Internal use only
-
.console_code_for(code_or_symbol) ⇒ Fixnum
mod_func
Fetches the correct code for the supplied symbol, or checks that a code is valid.
-
.wrap(text, code_or_symbol) ⇒ String
mod_func
Wraps a piece of text in ANSI codes with the supplied code.
Class Method Details
.config_colors_to_methods (mod_func)
This method is for internal use only.
[ GitHub ]
# File 'rspec-core/lib/rspec/core/formatters/console_codes.rb', line 34
def config_colors_to_methods @config_colors_to_methods ||= Configuration.instance_methods.grep(/_color\z/).inject({}) do |hash, method| hash[method.to_s.sub(/_color\z/, '').to_sym] = method hash end end
.console_code_for(code_or_symbol) ⇒ Fixnum
(mod_func)
Fetches the correct code for the supplied symbol, or checks that a code is valid. Defaults to white (37).
# File 'rspec-core/lib/rspec/core/formatters/console_codes.rb', line 47
def console_code_for(code_or_symbol) if (config_method = config_colors_to_methods[code_or_symbol]) console_code_for RSpec.configuration.__send__(config_method) elsif VT100_CODE_VALUES.key?(code_or_symbol) code_or_symbol else VT100_CODES.fetch(code_or_symbol) do console_code_for(:white) end end end
.wrap(text, code_or_symbol) ⇒ String
(mod_func)
Wraps a piece of text in ANSI codes with the supplied code. Will only apply the control code if RSpec.configuration.color_enabled?
returns true.
# File 'rspec-core/lib/rspec/core/formatters/console_codes.rb', line 66
def wrap(text, code_or_symbol) if RSpec.configuration.color_enabled? "\e[#{console_code_for(code_or_symbol)}m#{text}\e[0m" else text end end