class Scooter::UI

Attributes

options[R]
stderr[R]
stdin[R]
stdout[R]

Public Class Methods

new(stdout, stderr, stdin, options = {}) click to toggle source
# File lib/scooter/ui.rb, line 12
def initialize(stdout, stderr, stdin, options = {})
  @stdout, @stderr, @stdin, @options = stdout, stderr, stdin, options

  # Flush output immediately
  stdout.sync = true
  stderr.sync = true
end

Public Instance Methods

announce(message) click to toggle source
# File lib/scooter/ui.rb, line 20
def announce(message)
  out("#{color(message, :green, :bold)} ")
end
color(string, color = :light_green, style = :default) click to toggle source
# File lib/scooter/ui.rb, line 24
def color(string, color = :light_green, style = :default)
  if color?
    string.colorize(color: color, mode: style)
  else
    string
  end
end
err(message) click to toggle source
# File lib/scooter/ui.rb, line 32
def err(message)
  stderr.puts("#{message}") unless @options[:quiet]
end
error(message) click to toggle source
# File lib/scooter/ui.rb, line 36
def error(message)
  err("#{color('[ERROR]', :red, :bold)} #{message}")
end
exit(code) click to toggle source
# File lib/scooter/ui.rb, line 40
def exit(code)
  Kernel.exit!(code)
end
fatal(message) click to toggle source
# File lib/scooter/ui.rb, line 44
def fatal(message)
  err("#{color('[FATAL]', :red, :bold)} #{message}")
end
info(message='',color = :light_green) click to toggle source
# File lib/scooter/ui.rb, line 48
def info(message='',color = :light_green)
  out(color(message,color))
end
out(message='') click to toggle source
# File lib/scooter/ui.rb, line 52
def out(message='')
  stdout.puts("#{message}") unless @options[:quiet]
end
verbose(message) click to toggle source
# File lib/scooter/ui.rb, line 56
def verbose(message)
  out(color(message)) if @options[:verbose]
end
warn(message) click to toggle source
# File lib/scooter/ui.rb, line 60
def warn(message)
  err("#{color('[WARNING]', :yellow, :bold)} #{message}")
end

Private Instance Methods

color?() click to toggle source
# File lib/scooter/ui.rb, line 66
def color?
  @options[:color] && stdout.tty? && os != :windows
end
os() click to toggle source
# File lib/scooter/ui.rb, line 70
def os
  @os ||= (
    host_os = RbConfig::CONFIG['host_os']
    case host_os
    when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
      :windows
    when /darwin|mac os/
      :macosx
    when /linux/
      :linux
    when /solaris|bsd/
      :unix
    else
      :other
    end
  )
end