Sha256: 89088634d3a799b989b9714f13b63f52e8b319e73208fdd3440ffd7feda34dd1

Contents?: true

Size: 999 Bytes

Versions: 34

Compression:

Stored size: 999 Bytes

Contents

require 'tmpdir'

unless Dir.respond_to?(:mktmpdir)
  # backward compat for 1.8.6
  class Dir
    def Dir.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
      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
          FileUtils.remove_entry_secure path
        end
      else
        path
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 9 rubygems

Version Path
astrails-safe-0.0.9 lib/extensions/mktmpdir.rb
astrails-safe-0.1.0 lib/extensions/mktmpdir.rb
astrails-safe-0.1.1 lib/extensions/mktmpdir.rb
astrails-safe-0.1.10 lib/extensions/mktmpdir.rb
astrails-safe-0.1.2 lib/extensions/mktmpdir.rb
astrails-safe-0.1.3 lib/extensions/mktmpdir.rb
astrails-safe-0.1.4 lib/extensions/mktmpdir.rb
astrails-safe-0.1.6 lib/extensions/mktmpdir.rb
astrails-safe-0.1.7 lib/extensions/mktmpdir.rb
astrails-safe-0.1.8 lib/extensions/mktmpdir.rb
astrails-safe-0.1.9 lib/extensions/mktmpdir.rb
astrails-safe-0.2.0 lib/extensions/mktmpdir.rb
astrails-safe-0.2.1 lib/extensions/mktmpdir.rb
astrails-safe-0.2.2 lib/extensions/mktmpdir.rb
astrails-safe-0.2.3 lib/extensions/mktmpdir.rb
bostonlogic-safe-0.3.0 lib/extensions/mktmpdir.rb
colin-safe-0.1.6 lib/extensions/mktmpdir.rb
colin-safe-0.1.7 lib/extensions/mktmpdir.rb
colin-safe-0.1.8 lib/extensions/mktmpdir.rb
markmansour-safe-0.1.7 lib/extensions/mktmpdir.rb