module TestBench::Output::Palette
Public Class Methods
apply(prose, **colors)
click to toggle source
# File lib/test_bench/output/palette.rb, line 4 def self.apply prose, **colors escape_code = self.escape_code(**colors) if escape_code.empty? prose else "#{escape_code}#{prose}\e[0m" end end
escape_code(fg: nil, bg: nil)
click to toggle source
# File lib/test_bench/output/palette.rb, line 14 def self.escape_code fg: nil, bg: nil return '' if fg.nil? and bg.nil? brightness, fg = get fg if fg _, bg = get bg if bg str = String.new "\e[" str << "#{brightness};3#{fg}" if fg str << ';' if fg and bg str << "4#{bg}" if bg str << 'm' str end
get(name)
click to toggle source
# File lib/test_bench/output/palette.rb, line 30 def self.get name code = names.index name return unless code brightness, code = code.divmod 8 return brightness, code end
names()
click to toggle source
# File lib/test_bench/output/palette.rb, line 37 def self.names @names ||= %i( black red green brown blue magenta cyan gray dark_gray bright_red bright_green yellow bright_blue bright_magenta bright_cyan white ) end