move around and reformat code
This commit is contained in:
parent
903b8c5fd8
commit
c2d7f46bcb
@ -107,6 +107,52 @@ module FakeFS
|
|||||||
FileSystem.current_dir.to_s
|
FileSystem.current_dir.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# This code has been borrowed from Rubinius
|
||||||
|
def self.mktmpdir(prefix_suffix = nil, tmpdir = nil)
|
||||||
|
case prefix_suffix
|
||||||
|
when nil
|
||||||
|
prefix = "d"
|
||||||
|
suffix = ""
|
||||||
|
when String
|
||||||
|
prefix = prefix_suffix
|
||||||
|
suffix = ""
|
||||||
|
when Array
|
||||||
|
prefix = prefix_suffix[0]
|
||||||
|
suffix = prefix_suffix[1]
|
||||||
|
else
|
||||||
|
raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
|
||||||
|
end
|
||||||
|
|
||||||
|
t = Time.now.strftime("%Y%m%d")
|
||||||
|
n = nil
|
||||||
|
|
||||||
|
begin
|
||||||
|
path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
|
||||||
|
path << "-#{n}" if n
|
||||||
|
path << suffix
|
||||||
|
mkdir(path, 0700)
|
||||||
|
rescue Errno::EEXIST
|
||||||
|
n ||= 0
|
||||||
|
n += 1
|
||||||
|
retry
|
||||||
|
end
|
||||||
|
|
||||||
|
if block_given?
|
||||||
|
begin
|
||||||
|
yield path
|
||||||
|
ensure
|
||||||
|
require 'fileutils'
|
||||||
|
# This here was using FileUtils.remove_entry_secure instead of just
|
||||||
|
# .rm_r. However, the security concerns that apply to
|
||||||
|
# .rm_r/.remove_entry_secure shouldn't apply to a test fake
|
||||||
|
# filesystem. :^)
|
||||||
|
FileUtils.rm_r path
|
||||||
|
end
|
||||||
|
else
|
||||||
|
path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
alias_method :getwd, :pwd
|
alias_method :getwd, :pwd
|
||||||
alias_method :rmdir, :delete
|
alias_method :rmdir, :delete
|
||||||
|
@ -9,4 +9,3 @@ require 'fakefs/fileutils'
|
|||||||
require 'fakefs/file'
|
require 'fakefs/file'
|
||||||
require 'fakefs/file_test'
|
require 'fakefs/file_test'
|
||||||
require 'fakefs/dir'
|
require 'fakefs/dir'
|
||||||
require 'fakefs/tmpdir'
|
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
require 'fakefs/fileutils'
|
|
||||||
|
|
||||||
module FakeFS
|
|
||||||
class Dir
|
|
||||||
def Dir::mktmpdir(prefix_suffix=nil, tmpdir=nil)
|
|
||||||
# This code has been borrowed from Rubinius. Thanks, guys! :-)
|
|
||||||
|
|
||||||
case prefix_suffix
|
|
||||||
when nil
|
|
||||||
prefix = "d"
|
|
||||||
suffix = ""
|
|
||||||
when String
|
|
||||||
prefix = prefix_suffix
|
|
||||||
suffix = ""
|
|
||||||
when Array
|
|
||||||
prefix = prefix_suffix[0]
|
|
||||||
suffix = prefix_suffix[1]
|
|
||||||
else
|
|
||||||
raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
|
|
||||||
end
|
|
||||||
tmpdir ||= Dir.tmpdir
|
|
||||||
t = Time.now.strftime("%Y%m%d")
|
|
||||||
n = nil
|
|
||||||
begin
|
|
||||||
path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
|
|
||||||
path << "-#{n}" if n
|
|
||||||
path << suffix
|
|
||||||
Dir.mkdir(path, 0700)
|
|
||||||
rescue Errno::EEXIST
|
|
||||||
n ||= 0
|
|
||||||
n += 1
|
|
||||||
retry
|
|
||||||
end
|
|
||||||
|
|
||||||
if block_given?
|
|
||||||
begin
|
|
||||||
yield path
|
|
||||||
ensure
|
|
||||||
# This here was using FileUtils.remove_entry_secure instead of just
|
|
||||||
# .rm_r. However, the security concerns that apply to
|
|
||||||
# .rm_r/.remove_entry_secure shouldn't apply to a test fake
|
|
||||||
# filesystem. :^)
|
|
||||||
FileUtils.rm_r path
|
|
||||||
end
|
|
||||||
else
|
|
||||||
path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user