last_hit 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  module LastHit
2
2
  class Configure
3
3
  class << self
4
- attr_accessor :test_command
4
+ attr_accessor :test_command, :default_base_branch
5
5
 
6
6
  def config
7
7
  yield(self)
@@ -5,6 +5,27 @@ module LastHit
5
5
  def get_modified_files
6
6
  `git status -z`.split("\x0").map { |line| line.split(" ").last }
7
7
  end
8
+
9
+ def get_current_branch_files(another_branch)
10
+ current_sha = current_commit_sha
11
+ ancestor_sha = common_ancestor(current_branch, another_branch)
12
+
13
+ `git diff --name-only #{current_sha} #{ancestor_sha} -z`.split("\x0")
14
+ end
15
+
16
+ private
17
+
18
+ def current_branch
19
+ `git rev-parse --abbrev-ref HEAD`
20
+ end
21
+
22
+ def current_commit_sha
23
+ `git rev-parse --verify HEAD`
24
+ end
25
+
26
+ def common_ancestor(branch_1, branch_2)
27
+ `git merge-base #{branch_1} #{branch_2}`
28
+ end
8
29
  end
9
30
  end
10
31
  end
@@ -12,7 +12,8 @@ module LastHit
12
12
  private
13
13
 
14
14
  def before_run(file_string)
15
- p "Run files: #{file_string}"
15
+ $stdout.puts "Run files: #{file_string}"
16
+ $stdout.puts
16
17
  end
17
18
 
18
19
  def command(file_string)
@@ -1,3 +1,3 @@
1
1
  module LastHit
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
data/lib/last_hit.rb CHANGED
@@ -11,6 +11,17 @@ module LastHit
11
11
  class << self
12
12
  def run_modified_tests
13
13
  files = RcAdapter::GitAdapter.get_modified_files
14
+ process(files)
15
+ end
16
+
17
+ def run_current_branch_tests(another_branch)
18
+ files = RcAdapter::GitAdapter.get_current_branch_files(another_branch)
19
+ process(files)
20
+ end
21
+
22
+ private
23
+
24
+ def process(files)
14
25
  tests = FileFilter::SpecFilter.get_files(files)
15
26
  TestHandler.run(tests)
16
27
  end
@@ -1,6 +1,12 @@
1
1
  namespace :last_hit do
2
- desc "Run current modified tests"
3
- task :modified_tests => :environment do
2
+ desc "Run current modified tests before commiting"
3
+ task :current_modified => :environment do
4
4
  LastHit.run_modified_tests
5
5
  end
6
+
7
+ desc "Run all changed tests of a branch from its fork with another branch"
8
+ task :current_branch, [:another_branch] => :environment do |task, args|
9
+ args.with_defaults(another_branch: LastHit::Configure.default_base_branch)
10
+ LastHit.run_current_branch_tests(args.another_branch)
11
+ end
6
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: last_hit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  segments:
114
114
  - 0
115
- hash: 652792306889065390
115
+ hash: 2685193332422107205
116
116
  required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  version: '0'
122
122
  segments:
123
123
  - 0
124
- hash: 652792306889065390
124
+ hash: 2685193332422107205
125
125
  requirements: []
126
126
  rubyforge_project:
127
127
  rubygems_version: 1.8.23.2