[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]