Module: Mattock::RakeExampleGroup

Includes:
Matchers, Rake::DSL
Defined in:
lib/mattock/testing/rake-example-group.rb

Defined Under Namespace

Modules: Matchers Classes: TaskManager

Constant Summary

SavedEnvironmentVariables =
%w{APPDATA HOME HOMEDRIVE HOMEPATH RAKE_COLUMNS RAKE_SYSTEM RAKEOPT USERPROFILE}
DeletedEnvironmentVariables =
%w{RAKE_COLUMNS RAKE_SYSTEM RAKEOPT}

Class Method Summary (collapse)

Class Method Details

+ (Object) included(mod)



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/mattock/testing/rake-example-group.rb', line 14

def self.included(mod)
  mod.class_eval do
    let! :rake do
      Rake.application = Rake::Application.new
      Rake::TaskManager. = 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

    before :each do
      @tempdir = File.join "/tmp", "test_mattock_#{$$}"

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

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