class SpinR::Spinner

Constants

COLORS

Public Class Methods

new(spinner = nil, color = nil) click to toggle source
# File lib/spin_r/spinner.rb, line 8
def initialize(spinner = nil, color = nil)
  @spinner = spinner || SpinR::Spinners::TRADITIONAL
  @color = color
end

Public Instance Methods

worker(&block) click to toggle source
# File lib/spin_r/spinner.rb, line 13
def worker(&block)
  with_spin(&block)
end

Private Instance Methods

with_spin() { || ... } click to toggle source
# File lib/spin_r/spinner.rb, line 19
def with_spin
  require 'colorize'
  chars  = @spinner.clone.dup
  thread = Thread.new { yield }

  while thread.alive?
    spin_text = " #{chars[0].bold}\r"
    spin_text = spin_text.send(@color.to_s) if COLORS.include? @color
    print spin_text
    sleep 0.1
    print "\b\b"
    chars.push chars.shift
  end

  thread.join
end