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

ruby-changes:23119

From: nobu <ko1@a...>
Date: Thu, 29 Mar 2012 16:35:48 +0900 (JST)
Subject: [ruby-changes:23119] nobu:r35169 (trunk): * lib/test/unit.rb (terminal_width, del_status_line, put_status):

nobu	2012-03-29 16:35:38 +0900 (Thu, 29 Mar 2012)

  New Revision: 35169

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35169

  Log:
    * lib/test/unit.rb (terminal_width, del_status_line, put_status):
      extract as methods.

  Modified files:
    trunk/ChangeLog
    trunk/lib/test/unit/parallel.rb
    trunk/lib/test/unit.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 35168)
+++ ChangeLog	(revision 35169)
@@ -1,3 +1,8 @@
+Thu Mar 29 16:35:32 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/test/unit.rb (terminal_width, del_status_line, put_status):
+	  extract as methods.
+
 Thu Mar 29 10:20:18 2012  Martin Bosslet  <Martin.Bosslet@g...>
 
 	* ext/openssl/ossl_pkcs7.c: fix crash when parsing garbage data.
Index: lib/test/unit/parallel.rb
===================================================================
--- lib/test/unit/parallel.rb	(revision 35168)
+++ lib/test/unit/parallel.rb	(revision 35169)
@@ -7,7 +7,7 @@
         undef autorun
       end
 
-      alias orig_run_suite _run_suite
+      alias orig_run_suite mini_run_suite
       undef _run_suite
       undef _run_suites
       undef run
Index: lib/test/unit.rb
===================================================================
--- lib/test/unit.rb	(revision 35168)
+++ lib/test/unit.rb	(revision 35169)
@@ -374,24 +374,39 @@
         exit c
       end
 
+      def terminal_width
+        @terminal_width ||=
+          begin
+            require 'io/console'
+            $stdout.winsize[1]
+          rescue LoadError, NoMethodError
+            ENV["COLUMNS"].to_i.nonzero? || 80
+          end
+      end
+
+      def del_status_line
+        return unless @tty
+        print "\r"+" "*terminal_width+"\r"
+        $stdout.flush
+      end
+
+      def put_status(line)
+        return print(line) unless @tty
+        @status_line_size ||= 0
+        del_status_line
+        $stdout.flush
+        line = line[0...@terminal_width]
+        print line
+        $stdout.flush
+        @status_line_size = line.size
+      end
+
       def jobs_status
         return unless @options[:job_status]
         puts "" unless @options[:verbose]
         status_line = @workers.map(&:to_s).join(" ")
-        if @options[: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].min
+        if @options[:job_status] == :replace and @tty
+          put_status status_line
         else
           puts status_line
         end
@@ -399,7 +414,7 @@
 
       def del_jobs_status
         return unless @options[:job_status] == :replace && @jstr_size.nonzero?
-        print "\r"+" "*@jstr_size+"\r"
+        del_status_line
       end
 
       def after_worker_quit(worker)
@@ -627,6 +642,8 @@
         result
       end
 
+      alias mini_run_suite _run_suite
+
       # Overriding of MiniTest::Unit#puke
       def puke klass, meth, e
         # TODO:
@@ -649,6 +666,11 @@
         e[0, 1]
       end
 
+      def initialize # :nodoc:
+        super
+        @tty = $stdout.tty?
+      end
+
       def status(*args)
         result = super
         raise @interrupt if @interrupt

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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