gitcycle 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
1
  .DS_Store
2
2
  *.gem
3
3
  .bundle
4
+ coverage
4
5
  features/config.yml
5
6
  features/fixtures
6
7
  Gemfile.lock
data/bin/gitc CHANGED
@@ -2,15 +2,4 @@
2
2
 
3
3
  require File.expand_path("../../lib/gitcycle", __FILE__)
4
4
 
5
- gitcycle = Gitcycle.new
6
- command = ARGV.shift
7
-
8
- if command.nil?
9
- puts "\nNo command specified\n".red
10
- elsif gitcycle.respond_to?(command)
11
- gitcycle.send(command, *ARGV)
12
- elsif ARGV.empty?
13
- gitcycle.create_branch(command)
14
- else
15
- puts "\nCommand '#{command}' not found.\n".red
16
- end
5
+ Gitcycle.new(ARGV)
@@ -1,16 +1,19 @@
1
1
  Feature: gitcycle
2
2
 
3
3
  Scenario: No command given
4
- When I execute gitcycle with ""
5
- Then output includes "No command specified"
4
+ When I execute gitcycle with nothing
5
+ Then gitcycle runs
6
+ And output includes "No command specified"
6
7
 
7
8
  Scenario: Non-existent command
8
9
  When I execute gitcycle with "blah blah"
9
- Then output includes "Command 'blah' not found"
10
+ Then gitcycle runs
11
+ And output includes "Command 'blah' not found"
10
12
 
11
13
  Scenario: Setup
12
14
  When I execute gitcycle setup
13
- Then output includes "Configuration saved."
15
+ Then gitcycle runs
16
+ And output includes "Configuration saved."
14
17
  And gitcycle.yml should be valid
15
18
 
16
19
  Scenario: Feature branch w/ custom branch name
@@ -20,7 +23,8 @@ Scenario: Feature branch w/ custom branch name
20
23
  And I execute gitcycle with the Lighthouse ticket URL
21
24
  And I enter "n"
22
25
  And I enter "ticket.id-rename"
23
- Then output includes "Retrieving branch information from gitcycle."
26
+ Then gitcycle runs
27
+ And output includes "Retrieving branch information from gitcycle."
24
28
  And output includes "Would you like to name your branch 'ticket.id'?"
25
29
  And output includes "What would you like to name your branch?"
26
30
  And output includes "Creating 'ticket.id-rename' from 'master'."
@@ -35,7 +39,8 @@ Scenario: Feature branch
35
39
  When I cd to the user repo
36
40
  And I execute gitcycle with the Lighthouse ticket URL
37
41
  And I enter "y"
38
- Then output includes "Retrieving branch information from gitcycle."
42
+ Then gitcycle runs
43
+ And output includes "Retrieving branch information from gitcycle."
39
44
  And output includes "Would you like to name your branch 'ticket.id'?"
40
45
  And output does not include "What would you like to name your branch?"
41
46
  And output includes "Creating 'ticket.id' from 'master'."
@@ -47,7 +52,8 @@ Scenario: Feature branch
47
52
  Scenario: Checkout via ticket w/ existing branch
48
53
  When I cd to the user repo
49
54
  And I execute gitcycle with the Lighthouse ticket URL
50
- Then output includes "Retrieving branch information from gitcycle."
55
+ Then gitcycle runs
56
+ And output includes "Retrieving branch information from gitcycle."
51
57
  And output does not include "Would you like to name your branch 'ticket.id'?"
52
58
  And output does not include "What would you like to name your branch?"
53
59
  And output does not include "Creating 'ticket.id' from 'master'."
@@ -60,7 +66,8 @@ Scenario: Checkout via ticket w/ fresh repo
60
66
  Given a fresh set of repositories
61
67
  When I cd to the user repo
62
68
  And I execute gitcycle with the Lighthouse ticket URL
63
- Then output includes "Retrieving branch information from gitcycle."
69
+ Then gitcycle runs
70
+ And output includes "Retrieving branch information from gitcycle."
64
71
  And output does not include "Would you like to name your branch 'ticket.id'?"
65
72
  And output does not include "What would you like to name your branch?"
66
73
  And output does not include "Creating 'ticket.id' from 'master'."
@@ -74,8 +81,10 @@ Scenario: Pull changes from upstream
74
81
  And I checkout master
75
82
  And I commit something
76
83
  And I cd to the user repo
84
+ And I checkout ticket.id
77
85
  And I execute gitcycle with "pull"
78
- Then output includes "Retrieving branch information from gitcycle."
86
+ Then gitcycle runs
87
+ And output includes "Retrieving branch information from gitcycle."
79
88
  And output includes "Adding remote repo 'config.owner/config.repo'."
80
89
  And output includes "Fetching remote branch 'master'."
81
90
  And output includes "Merging remote branch 'master' from 'config.owner/config.repo'."
@@ -85,7 +94,8 @@ Scenario: Discuss commits w/ no parameters and nothing committed
85
94
  When I cd to the user repo
86
95
  And I checkout ticket.id
87
96
  And I execute gitcycle with "discuss"
88
- Then output includes "Retrieving branch information from gitcycle."
97
+ Then gitcycle runs
98
+ And output includes "Retrieving branch information from gitcycle."
89
99
  And output includes "Creating GitHub pull request."
90
100
  And output does not include "Branch not found."
91
101
  And output does not include "Opening issue"
@@ -97,7 +107,8 @@ Scenario: Discuss commits w/ no parameters and something committed
97
107
  And I checkout ticket.id
98
108
  And I commit something
99
109
  And I execute gitcycle with "discuss"
100
- Then output includes "Retrieving branch information from gitcycle."
110
+ Then gitcycle runs
111
+ And output includes "Retrieving branch information from gitcycle."
101
112
  And output includes "Creating GitHub pull request."
102
113
  And output does not include "Branch not found."
103
114
  And output includes "Opening issue" with URL
@@ -109,7 +120,8 @@ Scenario: Discuss commits w/ parameters
109
120
  When I cd to the user repo
110
121
  And I checkout ticket.id
111
122
  And I execute gitcycle with "discuss issue.id"
112
- Then output includes "Retrieving branch information from gitcycle."
123
+ Then gitcycle runs
124
+ And output includes "Retrieving branch information from gitcycle."
113
125
  And output does not include "Creating GitHub pull request."
114
126
  And output does not include "Branch not found."
115
127
  And output does not include "You must push code before opening a pull request."
@@ -120,36 +132,40 @@ Scenario: Ready issue w/ no parameters
120
132
  When I cd to the user repo
121
133
  And I checkout ticket.id
122
134
  And I execute gitcycle with "ready"
123
- Then output includes "Labeling issue as 'Pending Review'."
135
+ Then gitcycle runs
136
+ And output includes "Labeling issue as 'Pending Review'."
124
137
 
125
138
  Scenario: Ready issue w/ parameters
126
139
  When I cd to the user repo
127
140
  And I execute gitcycle with "ready issue.id"
128
- Then output includes "Labeling issues as 'Pending Review'."
141
+ Then gitcycle runs
142
+ And output includes "Labeling issues as 'Pending Review'."
129
143
 
130
144
  Scenario: Reviewed issue w/ no parameters
131
145
  When I cd to the user repo
132
146
  And I checkout ticket.id
133
147
  And I execute gitcycle with "reviewed"
134
- Then output includes "Labeling issue as 'Pending QA'."
148
+ Then gitcycle runs
149
+ And output includes "Labeling issue as 'Pending QA'."
135
150
 
136
151
  Scenario: Reviewed issue w/ parameters
137
152
  When I cd to the user repo
138
153
  And I execute gitcycle with "reviewed issue.id"
139
- Then output includes "Labeling issues as 'Pending QA'."
154
+ Then gitcycle runs
155
+ And output includes "Labeling issues as 'Pending QA'."
140
156
 
141
157
  Scenario: QA issue
142
158
  When I cd to the owner repo
143
159
  And I checkout master
144
160
  And I execute gitcycle with "qa issue.id"
145
- Then output includes "Retrieving branch information from gitcycle."
161
+ Then gitcycle runs
162
+ And output includes "Retrieving branch information from gitcycle."
146
163
  And output does not include "Checking out source branch 'master'."
147
164
  And output does not include "Tracking source branch 'master'."
148
- And output does not include "Deleting old QA branch 'qa_master'."
149
165
  And output includes "Creating QA branch 'qa_master'."
150
- And output includes "Adding remote repo 'config.user/config.repo'."
166
+ And output includes "Adding remote repo 'env.home/config.repo'."
151
167
  And output includes "Fetching remote branch 'ticket.id'."
152
- And output includes "Merging remote branch 'ticket.id' from 'config.user/config.repo'."
168
+ And output includes "Merging remote branch 'ticket.id' from 'env.home/config.repo'."
153
169
  And output includes "Pushing QA branch 'qa_master'."
154
170
  And output includes "Type 'gitc qa pass' to approve all issues in this branch."
155
171
  And output includes "Type 'gitc qa fail' to reject all issues in this branch."
@@ -1,4 +1,4 @@
1
- require 'aruba/cucumber'
1
+ require 'cucumber/rspec/doubles'
2
2
  require 'lighthouse'
3
3
  require 'redis'
4
4
  require 'rspec/expectations'
@@ -11,23 +11,26 @@ BIN = "#{BASE}/bin/gitc"
11
11
  ENV['CONFIG'] = GITCYCLE = "#{BASE}/features/fixtures/gitcycle.yml"
12
12
  ENV['ENV'] = 'development'
13
13
 
14
+ $:.unshift File.expand_path(__FILE__, "../../../lib")
15
+ require "gitcycle"
16
+
14
17
  $redis = Redis.new
15
18
 
16
19
  Before do |scenario|
17
- @aruba_timeout_seconds = 10
18
20
  @scenario_title = scenario.title
21
+ $execute = []
22
+ $input = []
23
+ $remotes = nil
19
24
  end
20
25
 
21
26
  def branches(options={})
22
- in_current_dir do
23
- b = `git branch#{" -a" if options[:all]}`
24
- if options[:current]
25
- b.match(/\*\s+(.+)/)[1]
26
- elsif options[:match]
27
- b.match(/([\s]+|origin\/)(#{options[:match]})/)[2] rescue nil
28
- else
29
- b
30
- end
27
+ b = `git branch#{" -a" if options[:all]}`
28
+ if options[:current]
29
+ b.match(/\*\s+(.+)/)[1]
30
+ elsif options[:match]
31
+ b.match(/([\s]+|origin\/)(#{options[:match]})/)[2] rescue nil
32
+ else
33
+ b
31
34
  end
32
35
  end
33
36
 
@@ -47,6 +50,7 @@ def gsub_variables(str)
47
50
  issue_id = $url.match(/https:\/\/github.com\/.+\/issues\/(\d+)/)[1]
48
51
  str = str.gsub('issue.id', issue_id)
49
52
  end
53
+ str = str.gsub('env.home', ENV['REPO'] == 'owner' ? config['owner'] : config['user'])
50
54
  str = str.gsub('config.owner', config['owner'])
51
55
  str = str.gsub('config.repo', config['repo'])
52
56
  str = str.gsub('config.user', config['user'])
@@ -54,11 +58,8 @@ def gsub_variables(str)
54
58
  end
55
59
 
56
60
  def log(match)
57
- in_current_dir do
58
- log = `git log --pretty=format:%s`
59
- match = !(match =~ /^#{match}$/).nil?
60
- end
61
- match
61
+ log = `git log --pretty=format:%s`
62
+ !(match =~ /^#{match}$/).nil?
62
63
  end
63
64
 
64
65
  def repos(reload=false)
@@ -81,15 +82,25 @@ def repos(reload=false)
81
82
  end
82
83
  end
83
84
 
84
- def run_gitcycle(cmd, interactive=false)
85
- cmd = [ BIN, cmd ].join(' ')
86
- if interactive
87
- run_interactive(unescape(cmd))
85
+ def run_gitcycle(cmd)
86
+ @output = ''
87
+ @gitcycle = Gitcycle.new
88
+ @gitcycle.stub(:puts) do |str|
89
+ str = str.gsub(/\e\[\d{1,2}m/, '')
90
+ @output << str
91
+ puts str
92
+ end
93
+ if cmd
94
+ @gitcycle.start(Shellwords.split(cmd))
88
95
  else
89
- run_simple(unescape(cmd), false)
96
+ @gitcycle.start
90
97
  end
91
98
  end
92
99
 
100
+ def type(text)
101
+ $input << text
102
+ end
103
+
93
104
  Given /^a fresh set of repositories$/ do
94
105
  repos(true)
95
106
  end
@@ -104,20 +115,23 @@ Given /^a new Lighthouse ticket$/ do
104
115
  $ticket.save
105
116
  end
106
117
 
118
+ When /^I execute gitcycle with nothing$/ do
119
+ $execute << nil
120
+ end
121
+
107
122
  When /^I execute gitcycle with "([^\"]*)"$/ do |cmd|
108
- cmd = gsub_variables(cmd)
109
- run_gitcycle(cmd)
123
+ $execute << gsub_variables(cmd)
110
124
  end
111
125
 
112
126
  When /^I execute gitcycle setup$/ do
113
127
  FileUtils.rm(GITCYCLE) if File.exists?(GITCYCLE)
114
- run_gitcycle [
128
+ $execute << [
115
129
  "setup",
116
130
  config['user'],
117
131
  config['repo'],
118
132
  config['token_dev']
119
133
  ].join(' ')
120
- run_gitcycle [
134
+ $execute << [
121
135
  "setup",
122
136
  config['user'],
123
137
  "#{config['owner']}/#{config['repo']}",
@@ -126,12 +140,14 @@ When /^I execute gitcycle setup$/ do
126
140
  end
127
141
 
128
142
  When /^I execute gitcycle with the Lighthouse ticket URL$/ do
129
- run_gitcycle $ticket.url, true
143
+ $execute << $ticket.url
130
144
  end
131
145
 
132
146
  When /^I cd to the (.*) repo$/ do |user|
133
- dirs.pop
134
- cd($repos[user.to_sym])
147
+ if ENV['REPO']
148
+ puts "(overiding repo as #{ENV['REPO']})"
149
+ end
150
+ Dir.chdir($repos[(ENV['REPO'] || user).to_sym])
135
151
  end
136
152
 
137
153
  When /^I enter "([^\"]*)"$/ do |input|
@@ -141,18 +157,20 @@ end
141
157
 
142
158
  When /^I commit something$/ do
143
159
  branch = branches(:current => true)
144
- in_current_dir do
145
- $commit_msg = "#{@scenario_title} - #{rand}"
146
- File.open('README', 'w') {|f| f.write($commit_msg) }
147
- `git add . && git add . -u && git commit -a -m '#{$commit_msg}'`
148
- `git push origin #{branch}`
149
- end
160
+ $commit_msg = "#{@scenario_title} - #{rand}"
161
+ File.open('README', 'w') {|f| f.write($commit_msg) }
162
+ `git add . && git add . -u && git commit -a -m '#{$commit_msg}'`
163
+ `git push origin #{branch}`
150
164
  end
151
165
 
152
166
  When /^I checkout (.+)$/ do |branch|
153
167
  branch = gsub_variables(branch)
154
- in_current_dir do
155
- `git checkout #{branch}`
168
+ `git checkout #{branch}`
169
+ end
170
+
171
+ Then /^gitcycle runs$/ do
172
+ $execute.each do |cmd|
173
+ run_gitcycle(cmd)
156
174
  end
157
175
  end
158
176
 
@@ -168,19 +186,18 @@ end
168
186
 
169
187
  Then /^output includes \"([^\"]*)"$/ do |expected|
170
188
  expected = gsub_variables(expected)
171
- assert_partial_output(expected, all_output)
189
+ @output.include?(expected).should == true
172
190
  end
173
191
 
174
192
  Then /^output includes \"([^\"]*)" with URL$/ do |expected|
175
- puts all_output.inspect
176
193
  expected = gsub_variables(expected)
177
- assert_partial_output(expected, all_output)
178
- $url = all_output.match(/^#{expected}.*(https?:\/\/[^\s]+)/)[1]
194
+ @output.include?(expected).should == true
195
+ $url = @output.match(/#{expected}.*(https?:\/\/[^\s]+)/)[1]
179
196
  end
180
197
 
181
198
  Then /^output does not include \"([^\"]*)"$/ do |expected|
182
199
  expected = gsub_variables(expected)
183
- assert_no_partial_output(expected, all_output)
200
+ @output.include?(expected).should == false
184
201
  end
185
202
 
186
203
  Then /^redis entries valid$/ do
@@ -199,6 +216,7 @@ Then /^redis entries valid$/ do
199
216
  should = {
200
217
  'lighthouse_url' => $ticket.url,
201
218
  'body' => "<div><p>test</p></div>\n\n#{$ticket.url}",
219
+ 'home' => 'br',
202
220
  'name' => $ticket.attributes['id'] + add,
203
221
  'id' => $ticket.attributes['id'] + add,
204
222
  'title' => $ticket.title,
@@ -0,0 +1,2 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
data/gitcycle.gemspec CHANGED
@@ -6,7 +6,7 @@ $:.unshift lib unless $:.include?(lib)
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "gitcycle"
9
- s.version = '0.1.1'
9
+ s.version = '0.1.2'
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.authors = [ 'Winton Welsh' ]
12
12
  s.email = [ 'mail@wintoni.us' ]
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency "lighthouse"
25
25
  s.add_development_dependency "redis"
26
26
  s.add_development_dependency "rspec"
27
+ s.add_development_dependency "simplecov"
27
28
  s.add_development_dependency "yajl-ruby"
28
29
 
29
30
  s.add_dependency "launchy", "= 2.0.5"
data/lib/gitcycle.rb CHANGED
@@ -21,14 +21,17 @@ class Gitcycle
21
21
  "http://gitcycle.bleacherreport.com/api"
22
22
  end
23
23
 
24
- def initialize
24
+ def initialize(args=nil)
25
25
  if ENV['CONFIG']
26
26
  @config_path = File.expand_path(ENV['CONFIG'])
27
27
  else
28
28
  @config_path = File.expand_path("~/.gitcycle.yml")
29
29
  end
30
+
30
31
  load_config
31
32
  load_git
33
+
34
+ start(args) if args
32
35
  end
33
36
 
34
37
  def create_branch(url_or_title)
@@ -55,6 +58,7 @@ class Gitcycle
55
58
  name = branch['name']
56
59
 
57
60
  unless branch['exists']
61
+ branch['home'] = @git_login
58
62
  branch['source'] = branches(:current => true)
59
63
 
60
64
  unless yes?("Would you like to name your branch '#{name}'?")
@@ -82,6 +86,7 @@ class Gitcycle
82
86
 
83
87
  puts "Sending branch information to gitcycle.".green
84
88
  get('branch',
89
+ 'branch[home]' => branch['home'],
85
90
  'branch[name]' => branch['name'],
86
91
  'branch[rename]' => name != branch['name'] ? name : nil,
87
92
  'branch[source]' => branch['source']
@@ -139,11 +144,15 @@ class Gitcycle
139
144
  'create' => 0
140
145
  )
141
146
 
142
- merge_remote_branch(
143
- :owner => branch['repo']['owner'],
144
- :repo => branch['repo']['name'],
145
- :branch => branch['source']
146
- )
147
+ if branch
148
+ merge_remote_branch(
149
+ :owner => branch['repo']['owner'],
150
+ :repo => branch['repo']['name'],
151
+ :branch => branch['source']
152
+ )
153
+ else
154
+ puts "Branch not found.\n".red
155
+ end
147
156
  end
148
157
 
149
158
  def qa(*issues)
@@ -169,40 +178,17 @@ class Gitcycle
169
178
  puts "Checking out #{qa_branch['source']}.".green
170
179
  run("git checkout #{qa_branch['source']}")
171
180
 
172
- if issues[1..-1].empty?
173
- puts "Merging '#{branch}' into '#{qa_branch['source']}'.\n".green
174
- run("git merge #{branch}")
175
- run("git push origin #{qa_branch['source']}")
176
-
177
- puts "\nLabeling all issues as '#{label}'.\n".green
178
- get('label',
179
- 'qa_branch[source]' => branch.gsub(/^qa_/, ''),
180
- 'labels' => [ label ]
181
- )
182
-
183
- branches = qa_branch['branches']
184
- else
185
- issues = [1..-1]
186
-
187
- branches = qa_branch['branches'].select do |b|
188
- issues.include?(b['issue'])
189
- end
190
-
191
- branches.each do |branch|
192
- merge_remote_branch(
193
- :user => branch['user'],
194
- :repo => branch['repo'].split(':'),
195
- :branch => branch['branch']
196
- )
181
+ puts "Merging '#{branch}' into '#{qa_branch['source']}'.\n".green
182
+ run("git merge #{branch}")
183
+ run("git push origin #{qa_branch['source']}")
184
+
185
+ puts "\nLabeling all issues as '#{label}'.\n".green
186
+ get('label',
187
+ 'qa_branch[source]' => branch.gsub(/^qa_/, ''),
188
+ 'labels' => [ label ]
189
+ )
197
190
 
198
- puts "\nLabeling issue #{branch['issue']} as '#{label}'.\n".green
199
- get('label',
200
- 'qa_branch[source]' => branch.gsub(/^qa_/, ''),
201
- 'issue' => branch['issue'],
202
- 'labels' => [ label ]
203
- )
204
- end
205
- end
191
+ branches = qa_branch['branches']
206
192
 
207
193
  puts "\nMarking Lighthouse tickets as 'pending-approval'.\n".green
208
194
  branches = branches.collect do |b|
@@ -294,6 +280,19 @@ class Gitcycle
294
280
  puts "\nConfiguration saved.\n".green
295
281
  end
296
282
 
283
+ def start(args=[])
284
+ command = args.shift
285
+ if command.nil?
286
+ puts "\nNo command specified\n".red
287
+ elsif self.respond_to?(command)
288
+ send(command, *args)
289
+ elsif args.empty?
290
+ create_branch(command)
291
+ else
292
+ puts "\nCommand '#{command}' not found.\n".red
293
+ end
294
+ end
295
+
297
296
  private
298
297
 
299
298
  def branches(options={})
@@ -322,6 +321,8 @@ class Gitcycle
322
321
  source = qa_branch['source']
323
322
  name = "qa_#{source}"
324
323
 
324
+ puts qa_branch.inspect
325
+
325
326
  unless qa_branch['branches'].empty?
326
327
  unless options[:preserve]
327
328
  if branches(:current => source)
@@ -334,7 +335,7 @@ class Gitcycle
334
335
  run("git fetch && git checkout -b #{source} origin/#{source}")
335
336
  end
336
337
 
337
- if branches(:match => name)
338
+ if branches(:match => name, :all => true)
338
339
  puts "Deleting old QA branch '#{name}'.\n".green
339
340
  run("git branch -D #{name}")
340
341
  run("git push origin :#{name}")
@@ -349,11 +350,11 @@ class Gitcycle
349
350
  qa_branch['branches'][range].each do |branch|
350
351
  issue = branch['issue']
351
352
  owner, repo = branch['repo'].split(':')
352
- user = branch['user']
353
+ home = branch['home']
353
354
  branch = branch['branch']
354
355
 
355
356
  output = merge_remote_branch(
356
- :owner => user,
357
+ :owner => home,
357
358
  :repo => repo,
358
359
  :branch => branch
359
360
  )
@@ -481,7 +482,7 @@ class Gitcycle
481
482
 
482
483
  def q(question, extra='')
483
484
  puts "#{question.yellow}#{extra}"
484
- $stdin.gets.strip
485
+ $input ? $input.shift : $stdin.gets.strip
485
486
  end
486
487
 
487
488
  def run(cmd)
metadata CHANGED
@@ -1,149 +1,123 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gitcycle
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Winton Welsh
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-12 00:00:00 -08:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: aruba
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70203661925140 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: cucumber
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70203661925140
25
+ - !ruby/object:Gem::Dependency
26
+ name: cucumber
27
+ requirement: &70203661924700 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :development
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: lighthouse
51
34
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70203661924700
36
+ - !ruby/object:Gem::Dependency
37
+ name: lighthouse
38
+ requirement: &70203661924280 !ruby/object:Gem::Requirement
53
39
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
61
44
  type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: redis
65
45
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70203661924280
47
+ - !ruby/object:Gem::Dependency
48
+ name: redis
49
+ requirement: &70203661923860 !ruby/object:Gem::Requirement
67
50
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
75
55
  type: :development
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
56
+ prerelease: false
57
+ version_requirements: *70203661923860
58
+ - !ruby/object:Gem::Dependency
78
59
  name: rspec
60
+ requirement: &70203661923440 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
79
67
  prerelease: false
80
- requirement: &id005 !ruby/object:Gem::Requirement
68
+ version_requirements: *70203661923440
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: &70203661923020 !ruby/object:Gem::Requirement
81
72
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
89
77
  type: :development
90
- version_requirements: *id005
91
- - !ruby/object:Gem::Dependency
92
- name: yajl-ruby
93
78
  prerelease: false
94
- requirement: &id006 !ruby/object:Gem::Requirement
79
+ version_requirements: *70203661923020
80
+ - !ruby/object:Gem::Dependency
81
+ name: yajl-ruby
82
+ requirement: &70203661922600 !ruby/object:Gem::Requirement
95
83
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
103
88
  type: :development
104
- version_requirements: *id006
105
- - !ruby/object:Gem::Dependency
106
- name: launchy
107
89
  prerelease: false
108
- requirement: &id007 !ruby/object:Gem::Requirement
90
+ version_requirements: *70203661922600
91
+ - !ruby/object:Gem::Dependency
92
+ name: launchy
93
+ requirement: &70203661922100 !ruby/object:Gem::Requirement
109
94
  none: false
110
- requirements:
111
- - - "="
112
- - !ruby/object:Gem::Version
113
- hash: 5
114
- segments:
115
- - 2
116
- - 0
117
- - 5
95
+ requirements:
96
+ - - =
97
+ - !ruby/object:Gem::Version
118
98
  version: 2.0.5
119
99
  type: :runtime
120
- version_requirements: *id007
121
- - !ruby/object:Gem::Dependency
122
- name: yajl-ruby
123
100
  prerelease: false
124
- requirement: &id008 !ruby/object:Gem::Requirement
101
+ version_requirements: *70203661922100
102
+ - !ruby/object:Gem::Dependency
103
+ name: yajl-ruby
104
+ requirement: &70203661234040 !ruby/object:Gem::Requirement
125
105
  none: false
126
- requirements:
127
- - - "="
128
- - !ruby/object:Gem::Version
129
- hash: 19
130
- segments:
131
- - 1
132
- - 1
133
- - 0
106
+ requirements:
107
+ - - =
108
+ - !ruby/object:Gem::Version
134
109
  version: 1.1.0
135
110
  type: :runtime
136
- version_requirements: *id008
111
+ prerelease: false
112
+ version_requirements: *70203661234040
137
113
  description: Tame your development cycle.
138
- email:
114
+ email:
139
115
  - mail@wintoni.us
140
- executables:
116
+ executables:
141
117
  - gitc
142
118
  extensions: []
143
-
144
119
  extra_rdoc_files: []
145
-
146
- files:
120
+ files:
147
121
  - .gitignore
148
122
  - Gemfile
149
123
  - LICENSE
@@ -153,44 +127,36 @@ files:
153
127
  - features/config.example.yml
154
128
  - features/gitcycle.feature
155
129
  - features/steps/gitcycle_steps.rb
130
+ - features/support/env.rb
156
131
  - gitcycle.gemspec
157
132
  - lib/ext/string.rb
158
133
  - lib/gitcycle.rb
159
- has_rdoc: true
160
134
  homepage: https://github.com/winton/gitcycle
161
135
  licenses: []
162
-
163
136
  post_install_message:
164
137
  rdoc_options: []
165
-
166
- require_paths:
138
+ require_paths:
167
139
  - lib
168
- required_ruby_version: !ruby/object:Gem::Requirement
140
+ required_ruby_version: !ruby/object:Gem::Requirement
169
141
  none: false
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- hash: 3
174
- segments:
175
- - 0
176
- version: "0"
177
- required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
147
  none: false
179
- requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
182
- hash: 3
183
- segments:
184
- - 0
185
- version: "0"
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
186
152
  requirements: []
187
-
188
153
  rubyforge_project:
189
- rubygems_version: 1.5.0
154
+ rubygems_version: 1.8.10
190
155
  signing_key:
191
156
  specification_version: 3
192
157
  summary: Tame your development cycle
193
- test_files:
158
+ test_files:
194
159
  - features/config.example.yml
195
160
  - features/gitcycle.feature
196
161
  - features/steps/gitcycle_steps.rb
162
+ - features/support/env.rb