Piling on...

Here's my take...

require 'thread'

class Spinner

  C = ['|', '/', '-', '\\']

  def self.spin
    @@thr = Thread.new do
      $stdout.sync= true
      Thread.current[:done]=false
      until (Thread.current[:done])
        4.times do |i|
          print C[i]
          sleep(0.1)
          print "\b"
        end
      end
      print "\b "
    end
  end

  def self.quit
    @@thr[:done]=true
  end

end

if __FILE__ == $0

  Spinner.spin
  sleep 3

  Spinner.quit
  sleep 3

end

-- 
Posted via http://www.ruby-forum.com/.