ruby-changes:13919
From: nobu <ko1@a...>
Date: Thu, 12 Nov 2009 06:47:18 +0900 (JST)
Subject: [ruby-changes:13919] Ruby:r25723 (trunk): * lib/tempfile.rb (Tempfile#initialize): option hash may not be
nobu 2009-11-12 06:42:40 +0900 (Thu, 12 Nov 2009) New Revision: 25723 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25723 Log: * lib/tempfile.rb (Tempfile#initialize): option hash may not be given. [ruby-core:26681] Modified files: trunk/ChangeLog trunk/lib/tempfile.rb trunk/test/test_tempfile.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 25722) +++ ChangeLog (revision 25723) @@ -1,3 +1,8 @@ +Thu Nov 12 06:42:38 2009 Nobuyoshi Nakada <nobu@r...> + + * lib/tempfile.rb (Tempfile#initialize): option hash may not be + given. [ruby-core:26681] + Thu Nov 12 01:29:15 2009 Yusuke Endoh <mame@t...> * enumerator.c (yielder_yield_push): Yielder#<< should return self. Index: lib/tempfile.rb =================================================================== --- lib/tempfile.rb (revision 25722) +++ lib/tempfile.rb (revision 25723) @@ -133,11 +133,17 @@ create(basename, *rest) do |tmpname, n, opts| lock = tmpname + '.lock' - mode = opts.delete(:mode) || 0 - mode = File::RDWR|File::CREAT|File::EXCL|mode + mode = File::RDWR|File::CREAT|File::EXCL + perm = 0600 + if opts + mode |= opts.delete(:mode) || 0 + opts[:perm] = perm + else + opts = perm + end self.class.mkdir(lock) begin - @data[1] = @tmpfile = File.open(tmpname, mode, 0600, *opts) + @data[1] = @tmpfile = File.open(tmpname, mode, opts) @data[0] = @tmpname = tmpname ensure self.class.rmdir(lock) Index: test/test_tempfile.rb =================================================================== --- test/test_tempfile.rb (revision 25722) +++ test/test_tempfile.rb (revision 25723) @@ -3,6 +3,11 @@ require_relative 'ruby/envutil' class TestTempfile < Test::Unit::TestCase + def initialize(*) + super + @tempfile = nil + end + def tempfile(*args, &block) t = Tempfile.new(*args, &block) @tempfile = (t unless block) @@ -45,13 +50,13 @@ def test_basename t = tempfile("foo") - assert_match /^foo/, File.basename(t.path) + assert_match(/^foo/, File.basename(t.path)) end def test_basename_with_suffix t = tempfile(["foo", ".txt"]) - assert_match /^foo/, File.basename(t.path) - assert_match /\.txt$/, File.basename(t.path) + assert_match(/^foo/, File.basename(t.path)) + assert_match(/\.txt$/, File.basename(t.path)) end def test_unlink @@ -284,5 +289,14 @@ t.rewind assert_equal(Encoding::ASCII_8BIT,t.read.encoding) end + + def test_binmode + t = tempfile("TEST", mode: IO::BINARY) + if IO::BINARY.nonzero? + assert(t.binmode?) + else + assert_equal(0600, t.stat.mode & 0777) + end + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/