Module: Everywhere::UI

Defined in:
lib/everywhere/ui.rb

Overview

Terminal output helpers. Colors follow the informal standard: on when stdout is a TTY or CLICOLOR_FORCE=1, always off when NO_COLOR is set.

Class Method Summary collapse

Class Method Details

.bad(msg) ⇒ Object



29
# File 'lib/everywhere/ui.rb', line 29

def bad(msg)     = puts("#{red("")} #{msg}")

.bold(t) ⇒ Object



20
# File 'lib/everywhere/ui.rb', line 20

def bold(t)   = paint(t, 1)

.color?Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
# File 'lib/everywhere/ui.rb', line 9

def color?
  return false if ENV["NO_COLOR"]
  return true if ENV["CLICOLOR_FORCE"] == "1"

  $stdout.tty?
end

.cyan(t) ⇒ Object



25
# File 'lib/everywhere/ui.rb', line 25

def cyan(t)   = paint(t, 36)

.die!(msg) ⇒ Object



33
34
35
# File 'lib/everywhere/ui.rb', line 33

def die!(msg)
  abort "#{red("")} #{red(msg)}"
end

.dim(t) ⇒ Object



21
# File 'lib/everywhere/ui.rb', line 21

def dim(t)    = paint(t, 2)

.green(t) ⇒ Object



23
# File 'lib/everywhere/ui.rb', line 23

def green(t)  = paint(t, 32)

.ok(msg) ⇒ Object



28
# File 'lib/everywhere/ui.rb', line 28

def ok(msg)      = puts("#{green("")} #{msg}")

.paint(text, *codes) ⇒ Object



16
17
18
# File 'lib/everywhere/ui.rb', line 16

def paint(text, *codes)
  color? ? "\e[#{codes.join(";")}m#{text}\e[0m" : text.to_s
end

.red(t) ⇒ Object



22
# File 'lib/everywhere/ui.rb', line 22

def red(t)    = paint(t, 31)

.step(msg) ⇒ Object



27
# File 'lib/everywhere/ui.rb', line 27

def step(msg)    = puts("#{cyan("")} #{msg}")

.success(msg) ⇒ Object



31
# File 'lib/everywhere/ui.rb', line 31

def success(msg) = puts("#{green("")} #{bold(msg)}")

.warn(msg) ⇒ Object



30
# File 'lib/everywhere/ui.rb', line 30

def warn(msg)    = puts("#{yellow("!")} #{msg}")

.yellow(t) ⇒ Object



24
# File 'lib/everywhere/ui.rb', line 24

def yellow(t) = paint(t, 33)