git_tracker 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -70,6 +70,18 @@ the top)*
70
70
 
71
71
  You should then add a [useful and responsible commit message][tpope]. :heart:
72
72
 
73
+ ### Valid branch names
74
+
75
+ *git_tracker* allows you to include the story number any where in the branch
76
+ name, optionally prefixing it with a hash (`#`). Examples:
77
+
78
+ - `best_feature_ever_#8675309`
79
+ - `best_feature_ever_8675309`
80
+ - `8675309_best_feature_ever`
81
+ - `#8675309_best_feature_ever`
82
+ - `your_name/8675309_best_feature_ever`
83
+ - `your_name/#8675309_best_feature_ever`
84
+
73
85
  ### Passing commit messages via command line
74
86
 
75
87
  If you pass a commit message on the command line the hook will still add the
@@ -3,7 +3,7 @@ require 'English'
3
3
  module GitTracker
4
4
  module Branch
5
5
  def self.story_number
6
- current[/#(?<number>\d+)/, :number]
6
+ current[/#?(?<number>\d+)/, :number]
7
7
  end
8
8
 
9
9
  def self.current
@@ -1,3 +1,3 @@
1
1
  module GitTracker
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -4,44 +4,55 @@ describe GitTracker::Branch do
4
4
  subject { described_class }
5
5
 
6
6
  def stub_branch(ref, exit_status = 0)
7
+ allow_message_expectations_on_nil
7
8
  subject.stub(:`) { ref }
8
9
  $?.stub(:exitstatus) { exit_status }
9
10
  end
10
11
 
11
- context 'not in a Git repository' do
12
- it 'aborts with non-zero exit status' do
12
+ describe '.current' do
13
+ it 'shells out to git, looking for the current HEAD' do
14
+ stub_branch('refs/heads/herpty_derp_de')
15
+ subject.should_receive('`').with('git symbolic-ref HEAD')
16
+ subject.current
17
+ end
18
+
19
+ it 'aborts with non-zero exit status when not in a Git repository' do
13
20
  stub_branch(nil, 128)
14
21
 
15
22
  -> { subject.current }.should raise_error SystemExit
16
23
  end
17
24
  end
18
25
 
19
- context "Current branch has a story number" do
20
- before do
21
- stub_branch('refs/heads/a_very_descriptive_name_#8675309')
22
- end
23
-
24
- it "shells out to git, looking for the current HEAD" do
25
- subject.should_receive('`').with('git symbolic-ref HEAD')
26
- subject.story_number
26
+ describe '.story_number' do
27
+ context "Current branch has a story number" do
28
+ it "finds the story that starts with a hash" do
29
+ stub_branch('refs/heads/a_very_descriptive_name_#8675309')
30
+ subject.story_number.should == '8675309'
31
+ end
32
+
33
+ it "finds the story without a leading hash" do
34
+ stub_branch('refs/heads/a_very_descriptive_name_1235309')
35
+ subject.story_number.should == '1235309'
36
+ end
37
+
38
+ it "finds the story following a forward hash" do
39
+ stub_branch('refs/heads/alindeman/8675309_got_her_number')
40
+ subject.story_number.should == '8675309'
41
+ end
27
42
  end
28
43
 
29
- it "finds the story" do
30
- subject.story_number.should == '8675309'
44
+ context "The current branch doesn't have a story number" do
45
+ it "finds no story" do
46
+ stub_branch('refs/heads/a_very_descriptive_name_without_a_#number')
47
+ subject.story_number.should_not be
48
+ end
31
49
  end
32
- end
33
-
34
- context "The current branch doesn't have a story number" do
35
- it "finds no story" do
36
- stub_branch('refs/heads/a_very_descriptive_name_without_a_#number')
37
- subject.story_number.should_not be
38
- end
39
- end
40
50
 
41
- context "Not on a branch (HEAD doesn't exist)" do
42
- it "finds no story" do
43
- stub_branch('')
44
- subject.story_number.should_not be
51
+ context "Not on a branch (HEAD doesn't exist)" do
52
+ it "finds no story" do
53
+ stub_branch('')
54
+ subject.story_number.should_not be
55
+ end
45
56
  end
46
57
  end
47
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_tracker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70233021591920 !ruby/object:Gem::Requirement
16
+ requirement: &70367025411540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.9.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70233021591920
24
+ version_requirements: *70367025411540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec-spies
27
- requirement: &70233021587380 !ruby/object:Gem::Requirement
27
+ requirement: &70367025410760 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70233021587380
35
+ version_requirements: *70367025410760
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry
38
- requirement: &70233021586580 !ruby/object:Gem::Requirement
38
+ requirement: &70367025410280 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.9.8
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70233021586580
46
+ version_requirements: *70367025410280
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70233021585440 !ruby/object:Gem::Requirement
49
+ requirement: &70367025409820 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.2'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70233021585440
57
+ version_requirements: *70367025409820
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &70233021583740 !ruby/object:Gem::Requirement
60
+ requirement: &70367025409440 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70233021583740
68
+ version_requirements: *70367025409440
69
69
  description: ! " Some simple tricks that make working with Pivotal Tracker even\n
70
70
  \ better... and easier... um, besier!\n"
71
71
  email: