module PrePush::ClassMethods

Public Instance Methods

build() click to toggle source
# File lib/pre_push.rb, line 18
def build
        @solution.to_a.each do |s|
                system "#{msbuild} #{s}"
                return false if !$?.success?
        end
        $?.success?
end
run() click to toggle source
# File lib/pre_push.rb, line 6
def run
        success = build
        if (!success)
                puts 'build has failed'
                exit(1)
        end
        success = run_tests(@assemblies)
        if (!success)
                puts 'Tests have failed'
                exit(1)
        end
end
run_tests(assemblies) click to toggle source
# File lib/pre_push.rb, line 25
def run_tests assemblies
        assemblies = assemblies.to_a.empty? ? @solution.to_a : assemblies
        success = true
        gem_lib = File.dirname(__FILE__)
        tests_to_run = @tests_to_run || {@test_runner => assemblies}
        tests_to_run.each_pair do |test_to_run|
                test_to_run[1].each do |assembly|
                        system "#{test_runner_path(gem_lib, test_to_run[0])} \"#{assembly}\""
                        success &= $?.success?
                end
        end
        success
end

Private Instance Methods

force_test_runner(runner_path) click to toggle source
# File lib/pre_push.rb, line 52
def force_test_runner runner_path
        define_singleton_method :test_runner_path do |gem_lib, nothing|
                runner_path
        end
end
msbuild() click to toggle source
# File lib/pre_push.rb, line 40
def msbuild
        MSBuild
end
override_msbuild(custom_msbuild) click to toggle source
# File lib/pre_push.rb, line 47
def override_msbuild custom_msbuild
        define_singleton_method :msbuild do
                custom_msbuild
        end
end
runners_exes() click to toggle source
# File lib/pre_push.rb, line 57
def runners_exes
        {
                'mspec' => 'mspec-clr4.exe',
                'mspec0515' => 'mspec-clr4.exe',
                'mspec0512' => 'mspec-clr4.exe',
                'nunit262' => 'nunit-console.exe',
                'nunit263' => 'nunit-console.exe',
                'xunit191' => 'xunit.console.exe'
        }
end
test_runner_path(gem_lib, test_runner) click to toggle source
# File lib/pre_push.rb, line 43
def test_runner_path gem_lib, test_runner
        test_runner = test_runner.to_s
        "\"#{gem_lib}/runners/#{test_runner}/#{runners_exes[test_runner]}\""
end