git-storyid 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea0c96c0cc6afc52210c376d0c46ed4e58ce27f4
4
- data.tar.gz: 958cd9d0871e7a71dd45ae14f3585bcd6c3236d1
3
+ metadata.gz: 757a81b3f19ee8d91bc9db03cf31703b37497aed
4
+ data.tar.gz: 8d066a7703fc70bd9bc87870aac767e3f013f7b2
5
5
  SHA512:
6
- metadata.gz: 330859df25358888f7f78bf48b003d9abe3003ac291e7c9bbd8ed2c5a0a9eabc2227b8a5c05dd3ba07c828f5fca8d0155fb22ef40b1f037533b59528f28ae098
7
- data.tar.gz: 49ddd88705a4466a6facf5bf9c48e9bf94e38c1269fe8b5dd5d4466212f7ce26044a4997a0e2368fed1604d02a78fcda0d5b1cc5975fe2a7342250e4c7e5f2d5
6
+ metadata.gz: 5bf8479a6b9f94c9e8e92639511268525e56d7fd4b0b6ee8bb2c617a5176276d734d8167fb5bc6e6e85f1ff251e2c5d655ced3ae2d232b7cfe4552be962116fb
7
+ data.tar.gz: c83427661cfe8e12cec738c976d4083b791be0c24f1d349f6440a56a81f8fe2c808b9a635c5a6af3af0e647595a53dfd233764a26a0224d9a50f2bb7a1484fc2
data/Gemfile.lock CHANGED
@@ -38,7 +38,7 @@ GEM
38
38
  nokogiri (~> 1.4)
39
39
  rest-client (~> 1.6.0)
40
40
  rest-client (~> 1.6.0)
41
- rake (10.2.2)
41
+ rake (10.3.2)
42
42
  rdoc (4.1.1)
43
43
  json (~> 1.4)
44
44
  rest-client (1.6.7)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
data/git-storyid.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: git-storyid 0.3.2 ruby lib
5
+ # stub: git-storyid 0.3.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "git-storyid"
9
- s.version = "0.3.2"
9
+ s.version = "0.3.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Bogdan Gusiev"]
14
- s.date = "2014-04-14"
14
+ s.date = "2015-02-06"
15
15
  s.description = "Helps include pivotal story id and description in commit"
16
16
  s.email = "agresso@gmail.com"
17
17
  s.executables = ["git-storyid"]
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
37
37
  ]
38
38
  s.homepage = "http://github.com/bogdan/git-storyid"
39
39
  s.licenses = ["MIT"]
40
- s.rubygems_version = "2.2.2"
40
+ s.rubygems_version = "2.4.5"
41
41
  s.summary = "Attach commits to pivotal stories"
42
42
 
43
43
  if s.respond_to? :specification_version then
data/lib/git_storyid.rb CHANGED
@@ -17,6 +17,9 @@ class GitStoryid
17
17
  opts.on("-m", "--message [MESSAGE]", "Add addional MESSAGE to comit") do |custom_message|
18
18
  @custom_message = custom_message
19
19
  end
20
+ opts.on("-f", "--finish", "Specify that this commit finishes a story or fixes a bug") do
21
+ @finish_stories = true
22
+ end
20
23
  end
21
24
  parser.parse!(arguments)
22
25
 
@@ -40,7 +43,12 @@ class GitStoryid
40
43
  quit_if_no_stories
41
44
  output stories_menu
42
45
  @stories = readline_story_ids.map do |index|
43
- all_stories[index - 1] || (quit("Story index #{index} not found."))
46
+ if index > 1_000_000
47
+ # Consider it a direct story id
48
+ Configuration.project.stories.find(index)
49
+ else
50
+ all_stories[index - 1] || (quit("Story index #{index} not found."))
51
+ end
44
52
  end
45
53
  end
46
54
  end
@@ -92,15 +100,24 @@ class GitStoryid
92
100
  end
93
101
 
94
102
  def build_commit_message
95
- message = ("[#{@stories.map { |s| "\##{s.id}"}.join(", ")}]").rjust 12
96
- message += ' '
103
+ message = @stories.map do |story|
104
+ "#{finish_story_prefix(story)}##{story.id}"
105
+ end.join(", ")
106
+ message = "[#{message}] "
97
107
  if @custom_message && !@custom_message.empty?
98
108
  message += @custom_message.to_s + "\n\n"
99
109
  end
100
- message += @stories.map {|s| "#{s.story_type.capitalize}: " + s.name.strip}.join("\n\n")
110
+ message += @stories.map do |story|
111
+ "#{story.story_type.capitalize}: " + story.name.strip
112
+ end.join("\n\n")
101
113
  message
102
114
  end
103
115
 
116
+ def finish_story_prefix(story)
117
+ return "" unless @finish_stories
118
+ story.story_type == "bug" ? "Fixes " : "Finishes "
119
+ end
120
+
104
121
  def execute(*args)
105
122
  Open3.popen3(*args) {|i, o| return o.read }
106
123
  end
@@ -102,15 +102,11 @@ describe GitStoryid do
102
102
  end
103
103
 
104
104
  context "when stories exists" do
105
-
106
- before(:each) do
107
-
108
- GitStoryid.any_instance.stubs(:readline).returns('1')
109
- end
110
105
 
111
106
  it "should commit changes" do
107
+ GitStoryid.any_instance.stubs(:readline).returns('1')
112
108
  run("-m", 'Hello world')
113
- commands.should include(["git", "commit", "-m", " [#44647731] Hello world\n\nFeature: Strip Default paypal credentials"])
109
+ commands.should include(["git", "commit", "-m", "[#44647731] Hello world\n\nFeature: Strip Default paypal credentials"])
114
110
  end
115
111
 
116
112
  it "should render stories menu correctly" do
@@ -120,6 +116,21 @@ describe GitStoryid do
120
116
 
121
117
  EOI
122
118
  end
119
+
120
+ it "should commit to multiple stories" do
121
+ GitStoryid.any_instance.stubs(:readline).returns('1,2')
122
+ run("-m", 'Hello world')
123
+ commands.should include(
124
+ ["git", "commit", "-m",
125
+ "[#44647731, #44647732] Hello world\n\nFeature: Strip Default paypal credentials\n\nFeature: Require pro paypal account for mass payments"]
126
+ )
127
+ end
128
+
129
+ it "should support finishing" do
130
+ GitStoryid.any_instance.stubs(:readline).returns('1')
131
+ run('-f')
132
+ commands.should include(["git", "commit", "-m", "[Finishes #44647731] Feature: Strip Default paypal credentials"])
133
+ end
123
134
  end
124
135
 
125
136
  it "should quit if no stories specified" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-storyid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-14 00:00:00.000000000 Z
11
+ date: 2015-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pivotal-tracker
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  version: '0'
152
152
  requirements: []
153
153
  rubyforge_project:
154
- rubygems_version: 2.2.2
154
+ rubygems_version: 2.4.5
155
155
  signing_key:
156
156
  specification_version: 4
157
157
  summary: Attach commits to pivotal stories