module RSpec::Core::Formatters::ConsoleCodes
ConsoleCodes
provides helpers for formatting console output with ANSI codes, e.g. color’s and bold.
Constants
- VT100_CODES
-
@private
- VT100_CODE_VALUES
-
@private
Public Instance Methods
@private
# 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
Fetches the correct code for the supplied symbol, or checks that a code is valid. Defaults to white (37).
@param code_or_symbol [Symbol, Fixnum] Symbol or code to check @return [Fixnum] a console code
# 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
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.
@param text [String] the text to wrap @param code_or_symbol [Symbol, Fixnum] the desired control code @return [String] the wrapped text
# 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