243: def Annoy.timed_display(msg, writer, period=nil)
244: return true unless STDIN.tty?
245: if Annoy.skip?
246:
247: return true
248: end
249: if writer.nil?
250: sleep period+1
251: return true
252: end
253: begin
254: period ||= @@period
255: success = Timeout::timeout(period) do
256: writer.puts "Message will display for #{period} seconds"
257: writer.print msg
258: writer.flush if writer.respond_to?(:flush)
259: sleep period+1
260: end
261: rescue Timeout::Error => ex
262: writer.print "\r" << ' '*msg.size
263: end
264:
265: true
266: end