module Mattock::RakeExampleGroup

Constants

DeletedEnvironmentVariables
SavedEnvironmentVariables

Public Class Methods

included(mod) click to toggle source
# File lib/mattock/testing/rake-example-group.rb, line 14
def self.included(mod)
  mod.class_eval do
    before :each do
      @tempdir = File.join "/tmp", "test_mattock_#{$$}"

      @original_PWD = Dir.pwd
      FileUtils.mkdir_p @tempdir
      Dir.chdir @tempdir
    end

    let! :rake do
      ::Rake.application = ::Rake::Application.new
      ::Rake::TaskManager.record_task_metadata = true
      RakeFileUtils.verbose_flag = false
      ::Rake.application
    end

    before :each do
      ARGV.clear

      @original_ENV = {}
      SavedEnvironmentVariables.each do |var|
        @original_ENV[var] = ENV[var]
      end
      DeletedEnvironmentVariables.each do |var|
        ENV.delete(var)
      end

    end

    after :each do
      SavedEnvironmentVariables.each do |var|
        ENV[var]         = @original_ENV[var]
      end

      if @original_ENV['APPDATA'].nil?
        ENV.delete 'APPDATA'
      end
    end

    after :each do
      Dir.chdir @original_PWD
      FileUtils.rm_rf @tempdir
    end
  end
end