ruby-changes:19244
From: nobu <ko1@a...>
Date: Fri, 15 Apr 2011 17:02:42 +0900 (JST)
Subject: [ruby-changes:19244] Ruby:r31283 (trunk): * lib/test/unit.rb (Test::Unit::Runner#jobs_status): io/console may
nobu 2011-04-14 22:48:09 +0900 (Thu, 14 Apr 2011) New Revision: 31283 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31283 Log: * lib/test/unit.rb (Test::Unit::Runner#jobs_status): io/console may not be available. use 80 as the last resort if IO#winsize and COLUMNS are unavailable. Modified files: trunk/ChangeLog trunk/lib/test/unit.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 31282) +++ ChangeLog (revision 31283) @@ -1,5 +1,9 @@ -Thu Apr 14 22:47:58 2011 Nobuyoshi Nakada <nobu@r...> +Thu Apr 14 22:48:03 2011 Nobuyoshi Nakada <nobu@r...> + * lib/test/unit.rb (Test::Unit::Runner#jobs_status): io/console may + not be available. use 80 as the last resort if IO#winsize and + COLUMNS are unavailable. + * lib/test/unit.rb (Test::Unit::Runner::Worker#died): rename using a verb. Index: lib/test/unit.rb =================================================================== --- lib/test/unit.rb (revision 31282) +++ lib/test/unit.rb (revision 31283) @@ -4,7 +4,6 @@ require 'test/unit/assertions' require 'test/unit/testcase' require 'optparse' -require 'io/console' module Test module Unit @@ -351,22 +350,27 @@ return unless @opts[:job_status] puts "" unless @opts[:verbose] status_line = @workers.map(&:to_s).join(" ") - if @opts[:job_status] == :replace - @terminal_width ||= $stdout.winsize[1] || ENV["COLUMNS"].to_i || 80 + if @opts[:job_status] == :replace and $stdout.tty? + @terminal_width ||= + begin + require 'io/console' + $stdout.winsize[1] + rescue LoadError, NoMethodError + ENV["COLUMNS"].to_i.nonzero? || 80 + end @jstr_size ||= 0 del_jobs_status $stdout.flush print status_line[0...@terminal_width] $stdout.flush - @jstr_size = status_line.size > @terminal_width ? \ - @terminal_width : status_line.size + @jstr_size = [status_line.size, @terminal_width].min else puts status_line end end def del_jobs_status - return unless @opts[:job_status] == :replace && @jstr_size + return unless @opts[:job_status] == :replace && @jstr_size.nonzero? print "\r"+" "*@jstr_size+"\r" end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/