Class: TestTempFileHelper::SetupTestEnvironmentTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/test_temp_file_helper/rake.rb

Overview

A Rake task that sets up the TEST_DATADIR and TEST_TMPDIR environment variables.

Properties:

  • base_dir: parent directory used to set the environment variables

  • data_dir: directory relative to base_dir used to set TEST_DATADIR

  • tmp_dir: directory relative to base_dir used to set TEST_TMPDIR

If an environment variable is already set, or if the corresponding property is not set on the SetupTestEnvironmentTask object, the environment variable will not be set or updated.

Usage (inside a Rakefile):

require ‘test_temp_file_helper/rake’

TestTempFileHelper::SetupTestEnvironmentTask.new do |t|

t.base_dir = File.dirname __FILE__
t.data_dir = File.join('test', 'data')
t.tmp_dir = File.join('test', 'tmp')

end

Instance Method Summary collapse

Constructor Details

#initialize(name = 'test_temp_file_helper_setup_test_environment') {|_self| ... } ⇒ SetupTestEnvironmentTask

Returns a new instance of SetupTestEnvironmentTask.

Yields:

  • (_self)

Yield Parameters:



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/test_temp_file_helper/rake.rb', line 43

def initialize(name='test_temp_file_helper_setup_test_environment')
  @name = name
  @base_dir = nil
  yield self if block_given?

  set_environment_variable 'TEST_DATADIR', @data_dir
  set_environment_variable 'TEST_TMPDIR', @tmp_dir
  test_tmpdir = ENV['TEST_TMPDIR']

  if test_tmpdir
    rm_rf test_tmpdir if File.exists? test_tmpdir
    directory test_tmpdir
    task test: test_tmpdir
  end
end

Instance Method Details

#base_dir=(dirname) ⇒ Object

Sets the base directory that serves as the common parent for the TEST_DATADIR and TEST_TMPDIR environment variables.

Parameters:

  • dirname (String)

    parent dir of data_dir and tmp_dir



73
74
75
# File 'lib/test_temp_file_helper/rake.rb', line 73

def base_dir=(dirname)
  @base_dir = dirname
end

#data_dir=(dirname) ⇒ Object

Sets TEST_DATADIR using a path relative to the base_dir.

Parameters:

  • dirname (String)

    path relative to base_dir



79
80
81
# File 'lib/test_temp_file_helper/rake.rb', line 79

def data_dir=(dirname)
  @data_dir = dirname
end

#tmp_dir=(dirname) ⇒ Object

Sets TEST_TMPDIR using a path relative to the base_dir.

Parameters:

  • dirname (String)

    path relative to base_dir



85
86
87
# File 'lib/test_temp_file_helper/rake.rb', line 85

def tmp_dir=(dirname)
  @tmp_dir = dirname
end