git_tracker 1.1.0 → 1.2.0

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/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  tags
19
+ .rvmrc
data/README.md CHANGED
@@ -68,6 +68,26 @@ the top)*
68
68
 
69
69
  ```
70
70
 
71
+ ## Keywords
72
+ You can use the custom keywords that Pivotal Tracker provide with the API.
73
+
74
+ The keywords are [Delivers] and [Fixes]
75
+
76
+ If you use those keywords in your commit message, the keyword will be prepended to the story ID in the commit message.
77
+
78
+ For example:
79
+
80
+ ```bash
81
+ # on branch named `bug/redis_connection_not_initializing_#8675309`
82
+ $ git commit -am "changed the redis connection string [Fixes]"
83
+ ```
84
+
85
+ Will result in a this being appended to the commit message
86
+
87
+ ```bash
88
+ [Fixes #8675309]
89
+ ```
90
+
71
91
  You should then add a [useful and responsible commit message][tpope]. :heart:
72
92
 
73
93
  ### Valid branch names
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
2
+ require 'bundler/gem_tasks'
3
3
  require 'rspec/core/rake_task'
4
4
 
5
5
  RSpec::Core::RakeTask.new(:spec)
data/lib/git_tracker.rb CHANGED
@@ -1,6 +1,6 @@
1
- require "git_tracker/hook"
2
- require "git_tracker/prepare_commit_message"
3
- require "git_tracker/version"
1
+ require 'git_tracker/hook'
2
+ require 'git_tracker/prepare_commit_message'
3
+ require 'git_tracker/version'
4
4
 
5
5
  module GitTracker
6
6
  def self.execute(cmd_arg, *args)
@@ -1,4 +1,5 @@
1
1
  require 'English'
2
+ require 'git_tracker/repository'
2
3
 
3
4
  module GitTracker
4
5
  module Branch
@@ -9,9 +10,15 @@ module GitTracker
9
10
  def self.current
10
11
  branch_path = `git symbolic-ref HEAD`
11
12
 
12
- abort unless $CHILD_STATUS.exitstatus == 0
13
+ Repository.ensure_exists unless exit_successful?
13
14
 
14
15
  branch_path[%r{refs/heads/(?<name>.+)}, :name] || ''
15
16
  end
17
+
18
+ private
19
+
20
+ def self.exit_successful?
21
+ $CHILD_STATUS.exitstatus == 0
22
+ end
16
23
  end
17
24
  end
@@ -10,6 +10,11 @@ module GitTracker
10
10
  @message =~ /^(?!#).*\[(\w+\s)?(#\d+\s)*##{number}(\s#\d+)*(\s\w+)?\]/io
11
11
  end
12
12
 
13
+ def keyword
14
+ @message =~ /\[(Delivers|Fixes)\]/
15
+ $1
16
+ end
17
+
13
18
  def append(text)
14
19
  body, postscript = parse(@message)
15
20
  new_message = format_message(body, text, postscript)
@@ -23,7 +28,7 @@ module GitTracker
23
28
 
24
29
  def parse(message)
25
30
  lines = message.split($/)
26
- body = lines.take_while { |line| !line.start_with?("#") }
31
+ body = lines.take_while { |line| !line.start_with?('#') }
27
32
  postscript = lines.slice(body.length..-1)
28
33
  [body.join("\n"), postscript.join("\n")]
29
34
  end
@@ -16,15 +16,23 @@ module GitTracker
16
16
  end
17
17
 
18
18
  def run
19
- story = story_number_from_branch
19
+ exit_when_commit_exists
20
20
 
21
+ story = story_number_from_branch
21
22
  message = CommitMessage.new(file)
22
23
  exit if message.mentions_story?(story)
23
- message.append("[##{story}]")
24
+ keyword = message.keyword
25
+
26
+ message_addition = [keyword, "##{story}"].compact.join(' ')
27
+ message.append("[#{message_addition}]")
24
28
  end
25
29
 
26
30
  private
27
31
 
32
+ def exit_when_commit_exists
33
+ exit if source == 'commit'
34
+ end
35
+
28
36
  def story_number_from_branch
29
37
  story = Branch.story_number
30
38
  exit unless story
@@ -9,5 +9,9 @@ module GitTracker
9
9
  path
10
10
  end
11
11
 
12
+ def self.ensure_exists
13
+ root
14
+ end
15
+
12
16
  end
13
17
  end
@@ -1,3 +1,3 @@
1
1
  module GitTracker
2
- VERSION = "1.1.0"
2
+ VERSION = '1.2.0'
3
3
  end
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'git_tracker/branch'
2
3
 
3
4
  describe GitTracker::Branch do
@@ -16,40 +17,41 @@ describe GitTracker::Branch do
16
17
  subject.current
17
18
  end
18
19
 
19
- it 'aborts with non-zero exit status when not in a Git repository' do
20
- stub_branch(nil, 128)
20
+ it 'ensures in a Git repository when looking for HEAD exits with non-zero status' do
21
+ stub_branch('', 128)
21
22
 
22
- -> { subject.current }.should raise_error SystemExit
23
+ GitTracker::Repository.should_receive(:ensure_exists)
24
+ subject.current
23
25
  end
24
26
  end
25
27
 
26
28
  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
+ context 'Current branch has a story number' do
30
+ it 'finds the story that starts with a hash' do
29
31
  stub_branch('refs/heads/a_very_descriptive_name_#8675309')
30
32
  subject.story_number.should == '8675309'
31
33
  end
32
34
 
33
- it "finds the story without a leading hash" do
35
+ it 'finds the story without a leading hash' do
34
36
  stub_branch('refs/heads/a_very_descriptive_name_1235309')
35
37
  subject.story_number.should == '1235309'
36
38
  end
37
39
 
38
- it "finds the story following a forward hash" do
40
+ it 'finds the story following a forward hash' do
39
41
  stub_branch('refs/heads/alindeman/8675309_got_her_number')
40
42
  subject.story_number.should == '8675309'
41
43
  end
42
44
  end
43
45
 
44
- context "The current branch doesn't have a story number" do
45
- it "finds no story" do
46
+ context 'The current branch does not have a story number' do
47
+ it 'finds no story' do
46
48
  stub_branch('refs/heads/a_very_descriptive_name_without_a_#number')
47
49
  subject.story_number.should_not be
48
50
  end
49
51
  end
50
52
 
51
- context "Not on a branch (HEAD doesn't exist)" do
52
- it "finds no story" do
53
+ context 'Not on a branch (HEAD does not exist)' do
54
+ it 'finds no story' do
53
55
  stub_branch('')
54
56
  subject.story_number.should_not be
55
57
  end
@@ -6,76 +6,88 @@ describe GitTracker::CommitMessage do
6
6
  include CommitMessageHelper
7
7
 
8
8
  subject { described_class.new(file) }
9
- let(:file) { "COMMIT_EDITMSG" }
9
+ let(:file) { 'COMMIT_EDITMSG' }
10
10
 
11
- it "requires path to the temporary commit message file" do
12
- -> { GitTracker::CommitMessage.new }.should raise_error ArgumentError
11
+ it 'requires path to the temporary commit message file' do
12
+ lambda { GitTracker::CommitMessage.new }.should raise_error ArgumentError
13
13
  end
14
14
 
15
- describe "#mentions_story?" do
16
- def stub_commit_message(story_text)
17
- File.stub(:read).with(file) { example_commit_message(story_text) }
15
+ def stub_commit_message(story_text)
16
+ File.stub(:read).with(file) { example_commit_message(story_text) }
17
+ end
18
+
19
+ describe '#keyword' do
20
+ it 'should return the correct keyword' do
21
+ stub_commit_message('[Delivers]')
22
+ subject.keyword.should == 'Delivers'
23
+ end
24
+
25
+ it 'should return nil when there no keyword matching' do
26
+ stub_commit_message('[Something]')
27
+ subject.keyword.should be_nil
18
28
  end
29
+ end
19
30
 
20
- context "commit message contains the special Pivotal Tracker story syntax" do
21
- it "allows just the number" do
22
- stub_commit_message("[#8675309]")
23
- subject.should be_mentions_story("8675309")
31
+ describe '#mentions_story?' do
32
+ context 'commit message contains the special Pivotal Tracker story syntax' do
33
+ it 'allows just the number' do
34
+ stub_commit_message('[#8675309]')
35
+ subject.should be_mentions_story('8675309')
24
36
  end
25
37
 
26
- it "allows multiple numbers" do
27
- stub_commit_message("[#99 #777 #8675309 #111222]")
28
- subject.should be_mentions_story("99")
29
- subject.should be_mentions_story("777")
30
- subject.should be_mentions_story("8675309")
31
- subject.should be_mentions_story("111222")
38
+ it 'allows multiple numbers' do
39
+ stub_commit_message('[#99 #777 #8675309 #111222]')
40
+ subject.should be_mentions_story('99')
41
+ subject.should be_mentions_story('777')
42
+ subject.should be_mentions_story('8675309')
43
+ subject.should be_mentions_story('111222')
32
44
  end
33
45
 
34
- it "allows state change before number" do
35
- stub_commit_message("[Fixes #8675309]")
36
- subject.should be_mentions_story("8675309")
46
+ it 'allows state change before number' do
47
+ stub_commit_message('[Fixes #8675309]')
48
+ subject.should be_mentions_story('8675309')
37
49
  end
38
50
 
39
- it "allows state change after the number" do
40
- stub_commit_message("[#8675309 Delivered]")
41
- subject.should be_mentions_story("8675309")
51
+ it 'allows state change after the number' do
52
+ stub_commit_message('[#8675309 Delivered]')
53
+ subject.should be_mentions_story('8675309')
42
54
  end
43
55
 
44
- it "allows surrounding text" do
45
- stub_commit_message("derp de #herp [Fixes #8675309] de herp-ity derp")
46
- subject.should be_mentions_story("8675309")
56
+ it 'allows surrounding text' do
57
+ stub_commit_message('derp de #herp [Fixes #8675309] de herp-ity derp')
58
+ subject.should be_mentions_story('8675309')
47
59
  end
48
60
  end
49
61
 
50
- context "commit message doesn't contain the special Pivotal Tracker story syntax" do
51
- it "requires brackets" do
52
- stub_commit_message("#8675309")
53
- subject.should_not be_mentions_story("8675309")
62
+ context 'commit message doesn not contain the special Pivotal Tracker story syntax' do
63
+ it 'requires brackets' do
64
+ stub_commit_message('#8675309')
65
+ subject.should_not be_mentions_story('8675309')
54
66
  end
55
67
 
56
- it "requires a pound sign" do
57
- stub_commit_message("[8675309]")
58
- subject.should_not be_mentions_story("8675309")
68
+ it 'requires a pound sign' do
69
+ stub_commit_message('[8675309]')
70
+ subject.should_not be_mentions_story('8675309')
59
71
  end
60
72
 
61
- it "doesn't allow the bare number" do
62
- stub_commit_message("8675309")
63
- subject.should_not be_mentions_story("8675309")
73
+ it 'does not allow the bare number' do
74
+ stub_commit_message('8675309')
75
+ subject.should_not be_mentions_story('8675309')
64
76
  end
65
77
 
66
- it "doesn't allow multiple state changes" do
67
- stub_commit_message("[Fixes Deploys #8675309]")
68
- subject.should_not be_mentions_story("8675309")
78
+ it 'does not allow multiple state changes' do
79
+ stub_commit_message('[Fixes Deploys #8675309]')
80
+ subject.should_not be_mentions_story('8675309')
69
81
  end
70
82
 
71
- it "doesn't allow comments" do
72
- stub_commit_message("#[#8675309]")
73
- subject.should_not be_mentions_story("8675309")
83
+ it 'does not allow comments' do
84
+ stub_commit_message('#[#8675309]')
85
+ subject.should_not be_mentions_story('8675309')
74
86
  end
75
87
  end
76
88
  end
77
89
 
78
- describe "#append" do
90
+ describe '#append' do
79
91
  let(:fake_file) { GitTracker::FakeFile.new }
80
92
  before do
81
93
  File.stub(:open).and_yield(fake_file)
@@ -84,9 +96,9 @@ describe GitTracker::CommitMessage do
84
96
  File.stub(:read) { message }
85
97
  end
86
98
 
87
- it "handles no existing message" do
99
+ it 'handles no existing message' do
88
100
  stub_original_commit_message("\n\n# some other comments\n")
89
- subject.append("[#8675309]")
101
+ subject.append('[#8675309]')
90
102
 
91
103
  fake_file.content.should == <<-COMMIT_MESSAGE.strip_heredoc
92
104
 
@@ -96,9 +108,9 @@ describe GitTracker::CommitMessage do
96
108
  COMMIT_MESSAGE
97
109
  end
98
110
 
99
- it "preserves existing messages" do
111
+ it 'preserves existing messages' do
100
112
  stub_original_commit_message("A first line\n\nWith more here\n# other comments\n")
101
- subject.append("[#8675309]")
113
+ subject.append('[#8675309]')
102
114
 
103
115
  fake_file.content.should == <<-COMMIT_MESSAGE.strip_heredoc
104
116
  A first line
@@ -110,9 +122,9 @@ describe GitTracker::CommitMessage do
110
122
  COMMIT_MESSAGE
111
123
  end
112
124
 
113
- it "preserves line breaks in comments" do
125
+ it 'preserves line breaks in comments' do
114
126
  stub_original_commit_message("# comment #1\n# comment B\n# comment III")
115
- subject.append("[#8675309]")
127
+ subject.append('[#8675309]')
116
128
 
117
129
  fake_file.content.should == <<-COMMIT_MESSAGE.strip_heredoc
118
130
 
@@ -124,5 +136,4 @@ describe GitTracker::CommitMessage do
124
136
  COMMIT_MESSAGE
125
137
  end
126
138
  end
127
-
128
139
  end
@@ -1,73 +1,96 @@
1
+ require 'spec_helper'
1
2
  require 'git_tracker/prepare_commit_message'
2
3
 
3
4
  describe GitTracker::PrepareCommitMessage do
4
5
  subject { GitTracker::PrepareCommitMessage }
5
6
 
6
7
  describe '.run' do
7
- let(:hook) { stub("PrepareCommitMessage") }
8
+ let(:hook) { stub('PrepareCommitMessage') }
8
9
  before do
9
10
  subject.stub(:new) { hook }
10
11
  end
11
12
 
12
- it "runs the hook" do
13
+ it 'runs the hook' do
13
14
  hook.should_receive(:run)
14
- subject.run("FILE1", "hook_source", "sha1234")
15
+ subject.run('FILE1', 'hook_source', 'sha1234')
15
16
  end
16
17
  end
17
18
 
18
- describe ".new" do
19
+ describe '.new' do
19
20
 
20
- it "requires the name of the commit message file" do
21
+ it 'requires the name of the commit message file' do
21
22
  lambda { subject.new }.should raise_error(ArgumentError)
22
23
  end
23
24
 
24
- it "remembers the name of the commit message file" do
25
- subject.new("FILE1").file.should == "FILE1"
25
+ it 'remembers the name of the commit message file' do
26
+ subject.new('FILE1').file.should == 'FILE1'
26
27
  end
27
28
 
28
- it "optionally accepts a message source" do
29
- hook = subject.new("FILE1", "merge").source.should == "merge"
29
+ it 'optionally accepts a message source' do
30
+ hook = subject.new('FILE1', 'merge').source.should == 'merge'
30
31
  end
31
32
 
32
- it "optionally accepts the SHA-1 of a commit" do
33
- hook = subject.new("FILE1", "commit", "abc1234").commit_sha.should == "abc1234"
33
+ it 'optionally accepts the SHA-1 of a commit' do
34
+ hook = subject.new('FILE1', 'commit', 'abc1234').commit_sha.should == 'abc1234'
34
35
  end
35
36
  end
36
37
 
37
38
  describe '#run' do
38
- let(:hook) { GitTracker::PrepareCommitMessage.new("FILE1") }
39
+ let(:hook) { GitTracker::PrepareCommitMessage.new('FILE1') }
39
40
  before do
40
41
  GitTracker::Branch.stub(:story_number) { story }
41
42
  end
42
43
 
43
- context "branch name without a Pivotal Tracker story number" do
44
+ context 'with an existing commit (via `-c`, `-C`, or `--amend` options)' do
45
+ let(:hook) { described_class.new('FILE2', 'commit', '60a086f3') }
46
+
47
+ it 'exits with status code 0' do
48
+ lambda { hook.run }.should succeed
49
+ end
50
+ end
51
+
52
+ context 'branch name without a Pivotal Tracker story number' do
44
53
  let(:story) { nil }
45
54
 
46
- it "exits without updating the commit message" do
47
- lambda { hook.run }.should raise_exception(SystemExit)
55
+ it 'exits without updating the commit message' do
56
+ lambda { hook.run }.should succeed
48
57
  GitTracker::CommitMessage.should_not have_received(:append)
49
58
  end
50
59
  end
51
60
 
52
- context "branch name with a Pivotal Tracker story number" do
53
- let(:story) { "8675309" }
54
- let(:commit_message) { stub("CommitMessage", mentions_story?: false) }
61
+ context 'branch name with a Pivotal Tracker story number' do
62
+ let(:story) { '8675309' }
63
+ let(:commit_message) { stub('CommitMessage', mentions_story?: false) }
64
+
55
65
  before do
66
+ commit_message.stub(:keyword) { nil }
56
67
  GitTracker::CommitMessage.stub(:new) { commit_message }
57
68
  end
58
69
 
59
- it "appends the number to the commit message" do
60
- commit_message.should_receive(:append).with("[#8675309]")
70
+ it 'appends the number to the commit message' do
71
+ commit_message.should_receive(:append).with('[#8675309]')
61
72
  hook.run
62
73
  end
63
74
 
64
- context "number already mentioned in the commit message" do
75
+ context 'keyword mentioned in the commit message' do
76
+ before do
77
+ commit_message.stub(:mentions_story?).with('8675309') { false }
78
+ commit_message.stub(:keyword) { 'Delivers' }
79
+ end
80
+
81
+ it 'appends the keyword and the story number' do
82
+ commit_message.should_receive(:append).with('[Delivers #8675309]')
83
+ hook.run
84
+ end
85
+ end
86
+
87
+ context 'number already mentioned in the commit message' do
65
88
  before do
66
- commit_message.stub(:mentions_story?).with("8675309") { true }
89
+ commit_message.stub(:mentions_story?).with('8675309') { true }
67
90
  end
68
91
 
69
- it "exits without updating the commit message" do
70
- lambda { hook.run }.should raise_exception(SystemExit)
92
+ it 'exits without updating the commit message' do
93
+ lambda { hook.run }.should succeed
71
94
  GitTracker::CommitMessage.should_not have_received(:append)
72
95
  end
73
96
  end
@@ -1,23 +1,31 @@
1
+ require 'spec_helper'
1
2
  require 'git_tracker/repository'
2
3
 
3
4
  describe GitTracker::Repository do
4
5
  subject { described_class }
6
+ let(:git_command) { 'git rev-parse --show-toplevel' }
7
+ before do
8
+ allow_message_expectations_on_nil
9
+ subject.stub(:`).with(git_command) { "/path/to/git/repo/root\n" }
10
+ end
5
11
 
6
12
  describe '.root' do
7
- let(:git_command) { 'git rev-parse --show-toplevel' }
8
- before do
9
- allow_message_expectations_on_nil
10
- subject.stub(:`).with(git_command) { "/path/to/git/repo/root\n" }
13
+
14
+ it 'gets the path to the top-level directory of the local Repository' do
11
15
  $?.stub(:exitstatus) { 0 }
16
+ subject.root.should == '/path/to/git/repo/root'
12
17
  end
13
18
 
14
- it "gets the path to the local Repository's top-level directory" do
15
- subject.root.should == '/path/to/git/repo/root'
19
+ it 'aborts when not in a git repository' do
20
+ $?.stub(:exitstatus) { 128 }
21
+ lambda { subject.root }.should_not succeed
16
22
  end
23
+ end
17
24
 
25
+ describe '.ensure_exists' do
18
26
  it 'aborts when not in a git repository' do
19
27
  $?.stub(:exitstatus) { 128 }
20
- -> { subject.root }.should raise_error SystemExit
28
+ lambda { subject.root }.should_not succeed
21
29
  end
22
30
  end
23
31
 
@@ -1,34 +1,34 @@
1
+ require 'spec_helper'
1
2
  require 'git_tracker'
2
3
 
3
4
  describe GitTracker do
4
5
  subject { described_class }
5
- let(:args) { ["a_file", "the_source", "sha1234"] }
6
+ let(:args) { ['a_file', 'the_source', 'sha1234'] }
6
7
 
7
- describe ".execute" do
8
+ describe '.execute' do
8
9
  before do
9
10
  subject.stub(:prepare_commit_msg) { true }
10
11
  end
11
12
 
12
- it "runs the hook, passing the args" do
13
+ it 'runs the hook, passing the args' do
13
14
  subject.should_receive(:prepare_commit_msg).with(*args) { true }
14
15
  subject.execute('prepare-commit-msg', *args)
15
16
  end
16
17
 
17
18
  # TODO: stop the abort from writing to stderr during tests?
18
- it "doesn't run hooks we don't know about" do
19
- lambda { subject.execute('non-existent-hook', *args) }.
20
- should raise_error SystemExit, "[git_tracker] command: 'non-existent-hook' does not exist."
19
+ it 'does not run hooks we do not know about' do
20
+ lambda { subject.execute('non-existent-hook', *args) }.should_not succeed
21
21
  end
22
22
  end
23
23
 
24
- describe ".prepare_commit_msg" do
25
- it "runs the hook, passing the args" do
24
+ describe '.prepare_commit_msg' do
25
+ it 'runs the hook, passing the args' do
26
26
  GitTracker::PrepareCommitMessage.should_receive(:run).with(*args) { true }
27
27
  subject.prepare_commit_msg(*args)
28
28
  end
29
29
  end
30
30
 
31
- describe ".install" do
31
+ describe '.install' do
32
32
  it 'tells the hook to install itself' do
33
33
  GitTracker::Hook.should_receive(:install)
34
34
  subject.install
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'fake_file'
2
2
  require 'commit_message_helper'
3
+ require_relative 'support/matchers/exit_code_matchers'
3
4
 
4
5
  RSpec.configure do |config|
5
6
  config.treat_symbols_as_metadata_keys_with_true_values = true
@@ -0,0 +1,33 @@
1
+ require 'rspec/expectations'
2
+
3
+ RSpec::Matchers.define :succeed do
4
+ actual = nil
5
+
6
+ match do |block|
7
+ begin
8
+ block.call
9
+ rescue SystemExit => e
10
+ actual = e.status
11
+ end
12
+ actual and actual == successful_exit_code
13
+ end
14
+
15
+ failure_message_for_should do |block|
16
+ "expected block to call exit(#{successful_exit_code}) but exit" +
17
+ (actual.nil? ? ' not called' : "(#{actual}) was called")
18
+ end
19
+
20
+ failure_message_for_should_not do |block|
21
+ "expected block not to call exit(#{successful_exit_code})"
22
+ end
23
+
24
+ description do
25
+ "expect block to call exit(#{successful_exit_code})"
26
+ end
27
+
28
+ def successful_exit_code
29
+ 0
30
+ end
31
+
32
+ end
33
+
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.1.0
4
+ version: 1.2.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: 2012-04-03 00:00:00.000000000 Z
12
+ date: 2012-04-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70367025411540 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 2.9.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70367025411540
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.9.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec-spies
27
- requirement: &70367025410760 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '2.0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70367025410760
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: pry
38
- requirement: &70367025410280 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 0.9.8
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70367025410280
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.8
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: activesupport
49
- requirement: &70367025409820 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '3.2'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70367025409820
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '3.2'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: rake
60
- requirement: &70367025409440 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,7 +85,12 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70367025409440
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  description: ! " Some simple tricks that make working with Pivotal Tracker even\n
70
95
  \ better... and easier... um, besier!\n"
71
96
  email:
@@ -101,6 +126,7 @@ files:
101
126
  - spec/spec_helper.rb
102
127
  - spec/support/commit_message_helper.rb
103
128
  - spec/support/fake_file.rb
129
+ - spec/support/matchers/exit_code_matchers.rb
104
130
  homepage: https://github.com/highgroove/git_tracker
105
131
  licenses: []
106
132
  post_install_message:
@@ -121,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
147
  version: '0'
122
148
  requirements: []
123
149
  rubyforge_project:
124
- rubygems_version: 1.8.17
150
+ rubygems_version: 1.8.21
125
151
  signing_key:
126
152
  specification_version: 3
127
153
  summary: Teaching Git about Pivotal Tracker.
@@ -135,3 +161,4 @@ test_files:
135
161
  - spec/spec_helper.rb
136
162
  - spec/support/commit_message_helper.rb
137
163
  - spec/support/fake_file.rb
164
+ - spec/support/matchers/exit_code_matchers.rb