class SublimeDSL::Tools::Console

Tools for console interaction.

Attributes

in_progress[R]
set_ruby_verbosity[RW]
verbosity[R]

Public Class Methods

new() click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 14
def initialize
  @verbosity = 1
  @set_ruby_verbosity = true
  @in_progress = false
end

Public Instance Methods

error(text) click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 20
def error(text)
  end_progress
  $stderr.puts text
end
info(text, force = false) click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 36
def info(text, force = false)
  return unless $stdout.tty? && (verbosity > 0 || force)
  end_progress
  puts text
end
progress(index, count, file, force = false) click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 46
def progress(index, count, file, force = false)
  return unless $stdout.tty? && (verbosity == 2 || force)
  @in_progress = true
  c = count.to_s
  prefix = "file %#{c.length}d/#{c}: " % index
  line = "#{prefix}#{file}"
  padding = width - line.length - 1
  if padding < 0
    file = file[(-padding) .. -1]
    file[0..2] = "..."
    line = "#{prefix}#{file}"
  else
    line << ' ' * padding
  end
  print "#{line}\r"
  $stdout.flush
end
verbosity=(value) click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 25
def verbosity=(value)
  if set_ruby_verbosity
    case value
    when 0 then $VERBOSE = nil
    when 1 then $VERBOSE = false
    when 2 then $VERBOSE = true
    end
  end
  @verbosity = value
end
width() click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 42
def width
  (ENV['COLUMNS'] || 80).to_i
end

Private Instance Methods

end_progress() click to toggle source
# File lib/sublime_dsl/tools/console.rb, line 66
def end_progress
  puts() if in_progress
  @in_progress = false
end