pre_push 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -34,11 +34,17 @@ The arguments accepted are:
34
34
 
35
35
  /r={test runner}
36
36
  /td={testable dlls}
37
+ /msb={path/to/custom/MSBuild.exe}
37
38
 
38
39
  If you wish to specify the dlls that your test runner should run/test use:
39
40
 
40
41
  $ prepush /td=./path/to/some.dll,./path/to/another.dll
41
42
 
43
+ The default msbuild path used is C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe.
44
+ If you wish to override it use:
45
+
46
+ $ prepush /msb=c:/my/path/to/MSBuild.exe
47
+
42
48
  You can also modify the solution, dlls & even runner on the dropped pre-push file itself.
43
49
  If you're using mspec, you may need to specify the dlls you wish to test in the @assemblies array variable. Failing to do so may result in the error "Could not load file or assembly 'path/to/your.sln' or one of its dependencies. The module was expected to contain an assembly manifest."
44
50
 
data/bin/prepush CHANGED
@@ -10,8 +10,7 @@ require "fileutils"
10
10
  parsed_args = PrePush::ArgsParser.execute(ARGV)
11
11
  runner = parsed_args[:runner]
12
12
  test_dlls = parsed_args[:test_dlls]
13
- assemblies_line = "@assemblies = {dtt} # insert dlls to test if different to the solution."
14
- commented_assemblies_line = "# @assemblies = ['path/to/first/test.dll','path/to/second/test.dll'] # insert dlls to test if different to the solution."
13
+ msbuild = parsed_args[:msbuild]
15
14
 
16
15
  if PrePush::Validator.validate(runner)
17
16
  bin = File.dirname(__FILE__)
@@ -22,9 +21,10 @@ if PrePush::Validator.validate(runner)
22
21
  sln_path = PrePush::SlnFinder.find || "path/to/your.sln"
23
22
  content = file_text.gsub(/\{runner\}/, "\"#{runner}\"").gsub(/\{sln_path\}/, "\"#{sln_path}\"")
24
23
  if test_dlls != nil
25
- content = content.gsub(/\{dtt\}/, "#{test_dlls}")
26
- else
27
- content = content.sub(assemblies_line, commented_assemblies_line)
24
+ content = content.sub("# @assemblies = {test_dlls}", "@assemblies = #{test_dlls}")
25
+ end
26
+ if msbuild != nil
27
+ content = content.sub("# override_msbuild 'path/to/custom/msbuild.exe'","override_msbuild '#{msbuild}'")
28
28
  end
29
29
  File.open(pre_push_hook, "w") {|file| file.puts content}
30
30
  puts "the pre-push hook has been dropped into your hooks dir; please modify it to build your assembly & run your tests."
data/lib/args_parser.rb CHANGED
@@ -2,7 +2,11 @@ module PrePush
2
2
  class ArgsParser
3
3
  class << self
4
4
  attr_accessor :args_props
5
- ArgsParser.args_props = {'r' => [:runner, :str], 'td' => [:test_dlls, :array]}
5
+ ArgsParser.args_props = {
6
+ 'r' => [:runner, :str],
7
+ 'td' => [:test_dlls, :array],
8
+ 'msb' => [:msbuild, :str]
9
+ }
6
10
  end
7
11
  def self.execute args
8
12
  result = {:runner => 'nunit262'}
@@ -1,3 +1,3 @@
1
1
  module PrePush
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/pre_push.rb CHANGED
@@ -2,7 +2,6 @@ require "pre_push/version"
2
2
 
3
3
  module PrePush
4
4
  module ClassMethods
5
- MSBuildPaths = {:clr4 => 'C:/Windows/Microsoft.NET/Framework/v4.0.30319'}
6
5
  def run
7
6
  success = build
8
7
  if (!success)
@@ -36,12 +35,17 @@ module PrePush
36
35
  def msbuild
37
36
  'C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe'
38
37
  end
38
+ def override_msbuild custom_msbuild
39
+ define_singleton_method :msbuild do
40
+ custom_msbuild
41
+ end
42
+ end
39
43
  def runners_exes
40
44
  {
41
45
  'mspec' => 'mspec-clr4.exe',
42
46
  'nunit262' => 'nunit-console.exe',
43
47
  'xunit191' => 'xunit.console.exe'
44
- }
48
+ }
45
49
  end
46
50
  end
47
51
 
@@ -9,7 +9,8 @@ class Executor
9
9
  ###
10
10
 
11
11
  @solution = {sln_path} # the path to the solution to build
12
- @assemblies = {dtt} # insert dlls to test if different to the solution.
12
+ # @assemblies = {test_dlls} # insert dlls to test if different to the solution.
13
+ # override_msbuild 'path/to/custom/msbuild.exe'
13
14
  end
14
15
 
15
16
  Executor.run
@@ -19,6 +19,12 @@ module PrePush
19
19
  result[:runner].should == "mspec"
20
20
  end
21
21
  end
22
+ describe "when /msb is specfied" do
23
+ it "should return a result with a string msbuild" do
24
+ result = PrePush::ArgsParser.execute(["/msb=path/to/custom/msbuild.exe"])
25
+ result[:msbuild].should == "path/to/custom/msbuild.exe"
26
+ end
27
+ end
22
28
  describe "when /td is specified" do
23
29
  it "should parse value as an array" do
24
30
  result = PrePush::ArgsParser.execute(["/td=./path/to/testable.dll"])
@@ -11,23 +11,8 @@ class EmptyDllsDummy
11
11
  include PrePush
12
12
  end
13
13
 
14
- class DummyClr2
15
- @clr = 'clr2'
16
- @solution = "solution/path/whammy"
17
- include PrePush
18
- end
19
-
20
- class SetExeDummy
21
- @solution = 'meh'
22
- @runner_exe = 'bar.exe'
23
- @test_runner = 'nunit262'
24
- def self.get_runners_exes
25
- @runners_exes
26
- end
27
- def self.set_exes
28
- self.build
29
- end
30
- include PrePush
14
+ class DummyCustomMSBuild < Dummy
15
+ override_msbuild 'path/to/custom/msbuild.exe'
31
16
  end
32
17
 
33
18
  class NilClass
@@ -42,9 +27,13 @@ describe PrePush do
42
27
  Dummy.build
43
28
  end
44
29
  it "should use clr4 msbuild when no clr specified" do
45
- Dummy.should_receive("system").with(/^C:\/Windows\/Microsoft.NET\/Framework\/v4.0.30319/)
30
+ Dummy.should_receive("system").with(/^C:\/Windows\/Microsoft.NET\/Framework\/v4.0.30319\/MSBuild.exe/)
46
31
  Dummy.build
47
32
  end
33
+ it "should use custom msbuild when specified" do
34
+ DummyCustomMSBuild.should_receive("system").with(/^path\/to\/custom\/msbuild.exe/)
35
+ DummyCustomMSBuild.build
36
+ end
48
37
  end
49
38
  describe 'run_tests' do
50
39
  it 'should call system to run tests on specified assemblies' do
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.6
4
+ version: 0.0.7
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-06-25 00:00:00.000000000 Z
12
+ date: 2013-07-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &21391524 !ruby/object:Gem::Requirement
16
+ requirement: &23167296 !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: *21391524
24
+ version_requirements: *23167296
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &21391188 !ruby/object:Gem::Requirement
27
+ requirement: &23166732 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *21391188
35
+ version_requirements: *23166732
36
36
  description: adding a pre-push hook for git to compile & run tests
37
37
  email:
38
38
  - nievegoor@gmail.com