Sha256: 9209d67973477057a58ef42ae9320d7dcc7c531f0075fda0e22531e2ff79dcb6

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'securerandom'
require 'fileutils'

SpecDir = File.realpath( File.dirname(__FILE__) )

$: << File.join(SpecDir, '..', 'lib')
$: << File.join(SpecDir, '..', 'src')

def jruby?
  return RUBY_PLATFORM == "java"
end

module TmpDir
  @root = File.join( File.dirname(__FILE__), "tmpdata")
  @tmpdir = File.join(@root, SecureRandom.uuid)
  @count = 0

  def self.dir
    FileUtils.mkdir_p(@tmpdir) unless File.directory?(@tmpdir)
    return @tmpdir
  end

  def self.filepath(name, versioned: false)
    self.dir    # ensure @tmpdir exists

    filepath = File.join(@tmpdir, name)
    if versioned
      while File.exist?(filepath)
        @count += 1

        nameparts = name.split('.')
        suffix = nameparts.pop if nameparts.size > 1
        nameparts.push @count.to_s
        nameparts.push suffix if suffix

        newname = nameparts.join(".")
        filepath = File.join(@tmpdir, newname)
      end
    end

    return filepath
  end

  def self.cleanup!
    return unless File.directory?(@root)
    FileUtils.rm_rf(@root)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
db-struct-0.1.0 spec/spec_helper.rb