Module: Rails::Annotate::Solargraph::TerminalColors

Extended by:
TerminalColors
Included in:
Rails::Annotate::Solargraph, TerminalColors
Defined in:
lib/rails/annotate/solargraph/terminal_colors.rb

Defined Under Namespace

Modules: Refinement

Constant Summary collapse

MAP =

Returns:

  • (Hash{Symbol => String})
{
  blue: (BLUE = "\033[94m"),
  cyan: (CYAN = "\033[96m"),
  green: (GREEN = "\033[92m"),
  yellow: (YELLOW = "\033[93m"),
  red: (RED = "\033[91m"),
  terminate: (TERMINATE = "\033[0m"),
  bold: (BOLD = "\033[1m"),
  italic: (ITALIC = "\033[3m"),
  underline: (UNDERLINE = "\033[4m")
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.with_style(string, style) ⇒ String

Style a string with an ASCII escape code

Parameters:

  • string (String)
  • style (Symbol)

Returns:

  • (String)


28
29
30
# File 'lib/rails/annotate/solargraph/terminal_colors.rb', line 28

def with_style(string, style)
  "#{MAP[style]}#{string}#{TERMINATE}"
end

.with_styles(string, *styles) ⇒ String

Style a string with multiple ASCII escape codes

Parameters:

  • string (String)
  • styles (Array<Symbol>)

Returns:

  • (String)


37
38
39
40
41
42
43
44
# File 'lib/rails/annotate/solargraph/terminal_colors.rb', line 37

def with_styles(string, *styles)
  result = ::String.new
  styles.each do |style|
    result << MAP[style]
  end

  result << "#{string}#{TERMINATE}"
end

Instance Method Details

#error(string) ⇒ Object



59
60
61
# File 'lib/rails/annotate/solargraph/terminal_colors.rb', line 59

def error(string)
  puts "\n", error_string(string)
end

#error_string(string) ⇒ Object



51
52
53
# File 'lib/rails/annotate/solargraph/terminal_colors.rb', line 51

def error_string(string)
  TerminalColors.with_styles "!! #{string} !!", :bold, :red
end

#title(string) ⇒ Object



55
56
57
# File 'lib/rails/annotate/solargraph/terminal_colors.rb', line 55

def title(string)
  puts "\n", title_string(string)
end

#title_string(string) ⇒ Object



47
48
49
# File 'lib/rails/annotate/solargraph/terminal_colors.rb', line 47

def title_string(string)
  TerminalColors.with_styles "== #{string} ==", :cyan, :underline, :italic
end