class VimGolf::CLI::UI

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/vimgolf/ui.rb, line 9
def initialize
    super
    @hl = HighLine.new($stdin)
end

Public Instance Methods

ask_question(message, options = {}) click to toggle source
# File lib/vimgolf/ui.rb, line 67
def ask_question(message, options = {})
  begin
    message = color_string(message, options[:type])
    details = Proc.new do |q|
      q.readline = !$stdin.tty?
    end
    @hl.ask(message, options[:choices] || [], &details)
  rescue EOFError
    # be sure to exit, don't loop
    error "Argh! Forced quit due to EOF error. Please report this problem so we can fix it!"
    return :quit
  end
end
color_string(str, type) click to toggle source
# File lib/vimgolf/ui.rb, line 81
def color_string(str, type)
  @hl.color(
    str,
    case type
    when :info  then :green
    when :warn  then :yellow
    when :error then :red
    when :debug then :cyan
    else nil
    end
  )
end
debug(name, message = nil) click to toggle source
# File lib/vimgolf/ui.rb, line 55
def debug(name, message = nil)
  return unless ENV["DEBUG"]

  if message
    message = message.inspect unless message.is_a?(String)
    say_status name, message, :blue
  elsif name
    name = name.inspect unless name.is_a?(String)
    say name, :cyan
  end
end
error(name, message = nil) click to toggle source
# File lib/vimgolf/ui.rb, line 14
def error(name, message = nil)
  begin
    orig_out, $stdout = $stdout, $stderr
    if message
      say_status name, message, :red
    elsif name
      say name, :red
    end
  ensure
    $stdout = orig_out
  end
end
info(name, message = nil) click to toggle source
# File lib/vimgolf/ui.rb, line 35
def info(name, message = nil)
  if message
    say_status name, message, :green
  elsif name
    say name, :green
  end
end
print_envs(apps, default_env_name = nil, simple = false) click to toggle source
print_exception(e) click to toggle source
print_help(table) click to toggle source
print_log(strokes) click to toggle source

Take list of keystrokes, pretty-print them

set_color(string, *colors) click to toggle source
Calls superclass method
# File lib/vimgolf/ui.rb, line 142
def set_color(string, *colors)
  ($stdout.tty? || ENV['THOR_SHELL']) ? super : string
end
warn(name, message = nil) click to toggle source
# File lib/vimgolf/ui.rb, line 27
def warn(name, message = nil)
  if message
    say_status name, message, :yellow
  elsif name
    say name, :yellow
  end
end