pre_push 0.0.7 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/bin/prepush CHANGED
@@ -6,7 +6,6 @@ require "sln_finder"
6
6
  require "args_parser"
7
7
  require "fileutils"
8
8
 
9
-
10
9
  parsed_args = PrePush::ArgsParser.execute(ARGV)
11
10
  runner = parsed_args[:runner]
12
11
  test_dlls = parsed_args[:test_dlls]
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ arg = ARGV[0]
4
+ bin = File.dirname(__FILE__)
5
+ puts "This will make sure all of your prepush hooks will use '#{arg}' to build your solutions. \nDo you want to continue? [y|else for no]"
6
+ input = STDIN.gets.chomp
7
+ if input.empty? || input.downcase == 'y'
8
+ File.open("#{bin}/../lib/msbuild.rb", "w") {|file| file.puts "MSBuild = '#{arg}'"}
9
+ puts 'success- modification has taken place.'
10
+ else
11
+ puts 'aborted.'
12
+ end
data/lib/msbuild.rb ADDED
@@ -0,0 +1 @@
1
+ MSBuild = 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe'
@@ -1,3 +1,3 @@
1
1
  module PrePush
2
- VERSION = "0.0.7"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/pre_push.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "pre_push/version"
2
+ require "msbuild"
2
3
 
3
4
  module PrePush
4
5
  module ClassMethods
@@ -19,13 +20,12 @@ module PrePush
19
20
  $?.success?
20
21
  end
21
22
  def run_tests assemblies
22
- gem_lib = File.dirname(__FILE__)
23
23
  assemblies = assemblies || [@solution]
24
24
  assemblies = assemblies.empty? ? [@solution] : assemblies
25
25
  success = true
26
+ gem_lib = File.dirname(__FILE__)
26
27
  assemblies.each do |assembly|
27
- exe = runners_exes[@test_runner]
28
- system "\"#{gem_lib}/runners/#{@test_runner}/#{exe}\" \"#{assembly}\""
28
+ system "#{test_runner_path(gem_lib)} \"#{assembly}\""
29
29
  success &= $?.success?
30
30
  end
31
31
  success
@@ -33,13 +33,21 @@ module PrePush
33
33
 
34
34
  private
35
35
  def msbuild
36
- 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe'
36
+ MSBuild
37
+ end
38
+ def test_runner_path gem_lib
39
+ "\"#{gem_lib}/runners/#{@test_runner}/#{runners_exes[@test_runner]}\""
37
40
  end
38
41
  def override_msbuild custom_msbuild
39
42
  define_singleton_method :msbuild do
40
43
  custom_msbuild
41
44
  end
42
45
  end
46
+ def force_test_runner runner_path
47
+ define_singleton_method :test_runner_path do |gem_lib|
48
+ runner_path
49
+ end
50
+ end
43
51
  def runners_exes
44
52
  {
45
53
  'mspec' => 'mspec-clr4.exe',
@@ -11,6 +11,7 @@ class Executor
11
11
  @solution = {sln_path} # the path to the solution to build
12
12
  # @assemblies = {test_dlls} # insert dlls to test if different to the solution.
13
13
  # override_msbuild 'path/to/custom/msbuild.exe'
14
+ # force_test_runner 'path/to/my/custom/test_runner.exe' # uncomment to use a custom test runner
14
15
  end
15
16
 
16
17
  Executor.run
data/pre_push.gemspec CHANGED
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.post_install_message = "cd to your git repository (containing the .git directory) and from there type 'prepush' to drop the prush hook into .git/hooks. \nBy default the hook will use 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe' to build your solutions. Use 'prepush-config path/to/your/msbuild.exe' to modify this. \nFor more information please see https://github.com/nieve/prepush"
23
24
  end
@@ -15,6 +15,10 @@ class DummyCustomMSBuild < Dummy
15
15
  override_msbuild 'path/to/custom/msbuild.exe'
16
16
  end
17
17
 
18
+ class DummyCustomTestRunner < Dummy
19
+ force_test_runner 'path/to/my/custom/test_runner.exe'
20
+ end
21
+
18
22
  class NilClass
19
23
  def success?
20
24
  end
@@ -40,6 +44,10 @@ describe PrePush do
40
44
  Dummy.should_receive("system").with(/some_test_proj.csproj/)
41
45
  Dummy.run_tests(['some_test_proj.csproj'])
42
46
  end
47
+ it "should use custom test runner when specified" do
48
+ DummyCustomTestRunner.should_receive("system").with(/^path\/to\/my\/custom\/test_runner.exe/)
49
+ DummyCustomTestRunner.run_tests(['some_test_proj.csproj'])
50
+ end
43
51
  describe 'when assemblies are left empty' do
44
52
  it 'should call system to run tests on solution' do
45
53
  EmptyDllsDummy.should_receive("system").with(/\.\/path\/to\/some.sln"$/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pre_push
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-27 00:00:00.000000000 Z
12
+ date: 2013-07-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &23167296 !ruby/object:Gem::Requirement
16
+ requirement: &21331896 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.3'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *23167296
24
+ version_requirements: *21331896
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &23166732 !ruby/object:Gem::Requirement
27
+ requirement: &21331548 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,12 +32,13 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *23166732
35
+ version_requirements: *21331548
36
36
  description: adding a pre-push hook for git to compile & run tests
37
37
  email:
38
38
  - nievegoor@gmail.com
39
39
  executables:
40
40
  - prepush
41
+ - prepush-config
41
42
  extensions: []
42
43
  extra_rdoc_files: []
43
44
  files:
@@ -47,7 +48,9 @@ files:
47
48
  - README.md
48
49
  - Rakefile
49
50
  - bin/prepush
51
+ - bin/prepush-config
50
52
  - lib/args_parser.rb
53
+ - lib/msbuild.rb
51
54
  - lib/pre_push.rb
52
55
  - lib/pre_push/version.rb
53
56
  - lib/prepush_validator.rb
@@ -190,7 +193,11 @@ files:
190
193
  homepage: https://github.com/nieve/prepush
191
194
  licenses:
192
195
  - MIT
193
- post_install_message:
196
+ post_install_message: ! "cd to your git repository (containing the .git directory)
197
+ and from there type 'prepush' to drop the prush hook into .git/hooks. \nBy default
198
+ the hook will use 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe' to
199
+ build your solutions. Use 'prepush-config path/to/your/msbuild.exe' to modify this.
200
+ \nFor more information please see https://github.com/nieve/prepush"
194
201
  rdoc_options: []
195
202
  require_paths:
196
203
  - lib