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

ruby-changes:29414

From: nobu <ko1@a...>
Date: Thu, 20 Jun 2013 13:08:53 +0900 (JST)
Subject: [ruby-changes:29414] nobu:r41466 (trunk): envutil.rb: keyword arguments

nobu	2013-06-20 13:08:41 +0900 (Thu, 20 Jun 2013)

  New Revision: 41466

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

  Log:
    envutil.rb: keyword arguments
    
    * test/ruby/envutil.rb (invoke_ruby, assert_normal_exit),
      (assert_in_out_err, assert_ruby_status, assert_separately): use
      keyword arguments so that optional parameters can be omitted.

  Modified files:
    trunk/test/ruby/envutil.rb

Index: test/ruby/envutil.rb
===================================================================
--- test/ruby/envutil.rb	(revision 41465)
+++ test/ruby/envutil.rb	(revision 41466)
@@ -29,20 +29,18 @@ module EnvUtil https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L29
 
   LANG_ENVS = %w"LANG LC_ALL LC_CTYPE"
 
-  def invoke_ruby(args, stdin_data="", capture_stdout=false, capture_stderr=false, opt={})
+  def invoke_ruby(args, stdin_data = "", capture_stdout = false, capture_stderr = false,
+                  encoding: nil, timeout: 10, reprieve: 1, **opt)
     in_c, in_p = IO.pipe
     out_p, out_c = IO.pipe if capture_stdout
     err_p, err_c = IO.pipe if capture_stderr && capture_stderr != :merge_to_stdout
-    opt = opt.dup
     opt[:in] = in_c
     opt[:out] = out_c if capture_stdout
     opt[:err] = capture_stderr == :merge_to_stdout ? out_c : err_c if capture_stderr
-    if enc = opt.delete(:encoding)
-      out_p.set_encoding(enc) if out_p
-      err_p.set_encoding(enc) if err_p
+    if encoding
+      out_p.set_encoding(encoding) if out_p
+      err_p.set_encoding(encoding) if err_p
     end
-    timeout = opt.delete(:timeout) || 10
-    reprieve = opt.delete(:reprieve) || 1
     c = "C"
     child_env = {}
     LANG_ENVS.each {|lc| child_env[lc] = c}
@@ -50,7 +48,7 @@ module EnvUtil https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L48
       child_env.update(args.shift)
     end
     args = [args] if args.kind_of?(String)
-    pid = spawn(child_env, EnvUtil.rubybin, *args, opt)
+    pid = spawn(child_env, EnvUtil.rubybin, *args, **opt)
     in_c.close
     out_c.close if capture_stdout
     err_c.close if capture_stderr && capture_stderr != :merge_to_stdout
@@ -209,11 +207,10 @@ module Test https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L207
         $VERBOSE = verbose
       end
 
-      def assert_normal_exit(testsrc, message = '', opt = {})
+      def assert_normal_exit(testsrc, message = '', child_env: nil, **opt)
         assert_valid_syntax(testsrc, caller_locations(1, 1)[0])
-        if opt.include?(:child_env)
-          opt = opt.dup
-          child_env = [opt.delete(:child_env)] || []
+        if child_env
+          child_env = [child_env]
         else
           child_env = []
         end
@@ -247,7 +244,7 @@ module Test https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L244
         faildesc
       end
 
-      def assert_in_out_err(args, test_stdin = "", test_stdout = [], test_stderr = [], message = nil, opt={})
+      def assert_in_out_err(args, test_stdin = "", test_stdout = [], test_stderr = [], message = nil, **opt)
         stdout, stderr, status = EnvUtil.invoke_ruby(args, test_stdin, true, true, opt)
         if block_given?
           raise "test_stdout ignored, use block only or without block" if test_stdout != []
@@ -272,7 +269,7 @@ module Test https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L269
         end
       end
 
-      def assert_ruby_status(args, test_stdin="", message=nil, opt={})
+      def assert_ruby_status(args, test_stdin="", message=nil, **opt)
         out, _, status = EnvUtil.invoke_ruby(args, test_stdin, true, :merge_to_stdout, opt)
         assert(!status.signaled?, FailDesc[status, message, out])
         message ||= "ruby exit status is not success:"
@@ -281,7 +278,7 @@ module Test https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L278
 
       ABORT_SIGNALS = Signal.list.values_at(*%w"ILL ABRT BUS SEGV")
 
-      def assert_separately(args, file = nil, line = nil, src, **opt)
+      def assert_separately(args, file = nil, line = nil, src, ignore_stderr: nil, **opt)
         unless file and line
           loc, = caller_locations(1,1)
           file ||= loc.path
@@ -298,7 +295,6 @@ module Test https://github.com/ruby/ruby/blob/trunk/test/ruby/envutil.rb#L295
 eom
         args = args.dup
         args.insert((Hash === args.first ? 1 : 0), *$:.map {|l| "-I#{l}"})
-        ignore_stderr = opt.delete(:ignore_stderr)
         stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, opt)
         abort = status.coredump? || (status.signaled? && ABORT_SIGNALS.include?(status.termsig))
         assert(!abort, FailDesc[status, stderr])

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

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