* lib/tempfile.rb (Tempfile#initialize): option hash may not be
given. [ruby-core:26681] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9a751c21e7
commit
55179696b2
@ -1,3 +1,8 @@
|
|||||||
|
Thu Nov 12 06:42:38 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/tempfile.rb (Tempfile#initialize): option hash may not be
|
||||||
|
given. [ruby-core:26681]
|
||||||
|
|
||||||
Thu Nov 12 01:29:15 2009 Yusuke Endoh <mame@tsg.ne.jp>
|
Thu Nov 12 01:29:15 2009 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
* enumerator.c (yielder_yield_push): Yielder#<< should return self.
|
* enumerator.c (yielder_yield_push): Yielder#<< should return self.
|
||||||
|
@ -133,11 +133,17 @@ class Tempfile < DelegateClass(File)
|
|||||||
|
|
||||||
create(basename, *rest) do |tmpname, n, opts|
|
create(basename, *rest) do |tmpname, n, opts|
|
||||||
lock = tmpname + '.lock'
|
lock = tmpname + '.lock'
|
||||||
mode = opts.delete(:mode) || 0
|
mode = File::RDWR|File::CREAT|File::EXCL
|
||||||
mode = File::RDWR|File::CREAT|File::EXCL|mode
|
perm = 0600
|
||||||
|
if opts
|
||||||
|
mode |= opts.delete(:mode) || 0
|
||||||
|
opts[:perm] = perm
|
||||||
|
else
|
||||||
|
opts = perm
|
||||||
|
end
|
||||||
self.class.mkdir(lock)
|
self.class.mkdir(lock)
|
||||||
begin
|
begin
|
||||||
@data[1] = @tmpfile = File.open(tmpname, mode, 0600, *opts)
|
@data[1] = @tmpfile = File.open(tmpname, mode, opts)
|
||||||
@data[0] = @tmpname = tmpname
|
@data[0] = @tmpname = tmpname
|
||||||
ensure
|
ensure
|
||||||
self.class.rmdir(lock)
|
self.class.rmdir(lock)
|
||||||
|
@ -3,6 +3,11 @@ require 'tempfile'
|
|||||||
require_relative 'ruby/envutil'
|
require_relative 'ruby/envutil'
|
||||||
|
|
||||||
class TestTempfile < Test::Unit::TestCase
|
class TestTempfile < Test::Unit::TestCase
|
||||||
|
def initialize(*)
|
||||||
|
super
|
||||||
|
@tempfile = nil
|
||||||
|
end
|
||||||
|
|
||||||
def tempfile(*args, &block)
|
def tempfile(*args, &block)
|
||||||
t = Tempfile.new(*args, &block)
|
t = Tempfile.new(*args, &block)
|
||||||
@tempfile = (t unless block)
|
@tempfile = (t unless block)
|
||||||
@ -45,13 +50,13 @@ class TestTempfile < Test::Unit::TestCase
|
|||||||
|
|
||||||
def test_basename
|
def test_basename
|
||||||
t = tempfile("foo")
|
t = tempfile("foo")
|
||||||
assert_match /^foo/, File.basename(t.path)
|
assert_match(/^foo/, File.basename(t.path))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_basename_with_suffix
|
def test_basename_with_suffix
|
||||||
t = tempfile(["foo", ".txt"])
|
t = tempfile(["foo", ".txt"])
|
||||||
assert_match /^foo/, File.basename(t.path)
|
assert_match(/^foo/, File.basename(t.path))
|
||||||
assert_match /\.txt$/, File.basename(t.path)
|
assert_match(/\.txt$/, File.basename(t.path))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_unlink
|
def test_unlink
|
||||||
@ -284,5 +289,14 @@ puts Tempfile.new('foo').path
|
|||||||
t.rewind
|
t.rewind
|
||||||
assert_equal(Encoding::ASCII_8BIT,t.read.encoding)
|
assert_equal(Encoding::ASCII_8BIT,t.read.encoding)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user