Sha256: 0e90cb14a855566ced521317e59d100447b466215d6bdf9e81b7be55968290f9
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
# This code is free software; you can redistribute it and/or modify it under # the terms of the new BSD License. # # Copyright (c) 2009-2010, Sebastian Staudt module Rubikon # A class for displaying and managing throbbers # # @author Sebastian Staudt # @see Application::InstanceMethods#throbber # @since 0.2.0 class Throbber < Thread SPINNER = '-\|/' # Creates and runs a Throbber that outputs to the given IO stream while the # given thread is alive # # @param [IO] ostream the IO stream the throbber should be written to # @param [Thread] thread The thread that should be watched # @see Application::InstanceMethods#throbber def initialize(ostream, thread) proc = Proc.new do |os, thr| step = 0 os.putc 32 while thr.alive? os << "\b#{SPINNER[step].chr}" os.flush step = (step + 1) % 4 sleep 0.25 end os.putc 8 end super { proc.call(ostream, thread) } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubikon-0.5.1 | lib/rubikon/throbber.rb |
rubikon-0.5.0 | lib/rubikon/throbber.rb |