diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-11 21:42:40 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-11 21:42:40 +0000 |
commit | c8726d8ed923ed867a89f55d39f45ff43aa06ff6 (patch) | |
tree | 193d912ab0b810b77d235b58f390501341f3c803 /lib | |
parent | 1a28402ced086b7a0bd9a4dcac6ec2ab687aec52 (diff) | |
download | ruby-c8726d8ed923ed867a89f55d39f45ff43aa06ff6.tar.gz ruby-c8726d8ed923ed867a89f55d39f45ff43aa06ff6.tar.xz ruby-c8726d8ed923ed867a89f55d39f45ff43aa06ff6.zip |
* lib/tempfile.rb (Tempfile#initialize): option hash may not be
given. [ruby-core:26681]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/tempfile.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/tempfile.rb b/lib/tempfile.rb index 7024bd9bd..b327acb62 100755 --- a/lib/tempfile.rb +++ b/lib/tempfile.rb @@ -133,11 +133,17 @@ class Tempfile < DelegateClass(File) 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) |