paratrooper 1.2.2 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_BIN: bin
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p374
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
data/Gemfile.lock CHANGED
@@ -1,18 +1,19 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paratrooper (1.1.3)
4
+ paratrooper (1.3.1)
5
5
  heroku-api (~> 0.3)
6
6
  netrc (~> 0.7)
7
+ rendezvous (~> 0.0.1)
7
8
 
8
9
  GEM
9
- remote: http://rubygems.org/
10
+ remote: https://rubygems.org/
10
11
  specs:
11
12
  coderay (1.0.8)
12
13
  diff-lcs (1.1.3)
13
- excon (0.16.10)
14
- heroku-api (0.3.8)
15
- excon (~> 0.16.10)
14
+ excon (0.20.1)
15
+ heroku-api (0.3.9)
16
+ excon (~> 0.20.1)
16
17
  method_source (0.8.1)
17
18
  netrc (0.7.7)
18
19
  pry (0.9.10)
@@ -20,6 +21,7 @@ GEM
20
21
  method_source (~> 0.8)
21
22
  slop (~> 3.3.1)
22
23
  rake (10.0.3)
24
+ rendezvous (0.0.2)
23
25
  rspec (2.12.0)
24
26
  rspec-core (~> 2.12.0)
25
27
  rspec-expectations (~> 2.12.0)
data/README.md CHANGED
@@ -67,6 +67,20 @@ Paratrooper::Deploy.new('app')
67
67
 
68
68
  This method works via a local Netrc file handled via the [Heroku Toolbelt][] and is the default and preferred method for providing authentication keys.
69
69
 
70
+ ## Git SSH key configuration
71
+
72
+ If you use multiple SSH keys for managing multiple accounts, for example in your `.ssh/config`, you can set the `ssh_host` option:
73
+
74
+ ```ruby
75
+ Paratrooper::Deploy.new('app', ssh_host: 'HOST')
76
+ ```
77
+
78
+ This also works if you're using the [heroku-accounts](https://github.com/ddollar/heroku-accounts) plugin:
79
+
80
+ ```ruby
81
+ Paratrooper::Deploy.new('app', ssh_host: 'heroku.ACCOUNT_NAME')
82
+ ```
83
+
70
84
  ## Tag Management
71
85
 
72
86
  By providing tag options for Paratrooper, your code can be tagged and deployed from various reference points.
data/bin/autospec ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'autospec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rspec-core', 'autospec')
data/bin/coderay ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'coderay' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('coderay', 'coderay')
data/bin/htmldiff ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'htmldiff' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('diff-lcs', 'htmldiff')
data/bin/ldiff ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'ldiff' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('diff-lcs', 'ldiff')
data/bin/pry ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'pry' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('pry', 'pry')
data/bin/rake ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rake' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rake', 'rake')
data/bin/rspec ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rspec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rspec-core', 'rspec')
@@ -8,28 +8,41 @@ module Paratrooper
8
8
  #
9
9
  class Deploy
10
10
  attr_reader :app_name, :notifiers, :system_caller, :heroku, :tag_name,
11
- :match_tag
11
+ :match_tag, :protocol, :repo_host, :repo_name, :deployment_host
12
12
 
13
13
  # Public: Initializes a Deploy
14
14
  #
15
15
  # app_name - A String naming the Heroku application to be interacted with.
16
16
  # options - The Hash options is used to provide additional functionality.
17
- # :notifiers - Array of objects responsible for handling
18
- # notifications (optional).
19
- # :heroku - Object wrapper around heroku-api (optional).
20
- # :tag - String name to be used as a git reference
21
- # point (optional).
22
- # :match_tag_to - String name of git reference point to match
23
- # :tag to (optional).
24
- # :system_caller - Object responsible for calling system
25
- # commands (optional).
17
+ # :notifiers - Array of objects interested in being
18
+ # notified of steps in deployment process
19
+ # (optional).
20
+ # :heroku - Object wrapper around heroku-api (optional).
21
+ # :tag - String name to be used as a git reference
22
+ # point (optional).
23
+ # :match_tag_to - String name of git reference point to match
24
+ # :tag to (optional).
25
+ # :system_caller - Object responsible for calling system
26
+ # commands (optional).
27
+ # :protocol - String web protocol to be used when pinging
28
+ # application (optional, default: 'http').
29
+ # :repo_host - String host name of of git repository
30
+ # (optional, default: 'github.com').
31
+ # :repo_name - String repository name (optional,
32
+ # default: '#app_name).
33
+ # :deployment_host - String host name to be used in git URL
34
+ # (optional, default: 'heroku.com').
26
35
  def initialize(app_name, options = {})
27
- @app_name = app_name
28
- @notifiers = options[:notifiers] || [Notifiers::ScreenNotifier.new]
29
- @heroku = options[:heroku] || HerokuWrapper.new(app_name, options)
30
- @tag_name = options[:tag]
31
- @match_tag = options[:match_tag_to] || 'master'
32
- @system_caller = options[:system_caller] || SystemCaller.new
36
+ @app_name = app_name
37
+ @notifiers = options[:notifiers] || [Notifiers::ScreenNotifier.new]
38
+ @heroku = options[:heroku] || HerokuWrapper.new(app_name, options)
39
+ @tag_name = options[:tag]
40
+ @match_tag = options[:match_tag_to] || 'master'
41
+ @system_caller = options[:system_caller] || SystemCaller.new
42
+ @protocol = options[:protocol] || 'http'
43
+ @repo_host = options[:repo_host] || 'github.com'
44
+ @repo_name = options[:repo_name] || app_name
45
+ @deployment_host = options[:deployment_host] || 'heroku.com'
33
46
  end
34
47
 
35
48
  def setup
@@ -66,7 +79,7 @@ module Paratrooper
66
79
  unless tag_name.nil? || tag_name.empty?
67
80
  notify(:update_repo_tag)
68
81
  system_call "git tag #{tag_name} #{match_tag} -f"
69
- system_call "git push -f #{git_remote} #{tag_name}"
82
+ system_call "git push -f #{repo_remote} #{tag_name}"
70
83
  end
71
84
  end
72
85
 
@@ -75,14 +88,14 @@ module Paratrooper
75
88
  def push_repo
76
89
  reference_point = tag_name || 'master'
77
90
  notify(:push_repo, reference_point: reference_point)
78
- system_call "git push -f #{git_remote} #{reference_point}:master"
91
+ system_call "git push -f #{deployment_remote} #{reference_point}:master"
79
92
  end
80
93
 
81
94
  # Public: Runs rails database migrations on your application.
82
95
  #
83
96
  def run_migrations
84
97
  notify(:run_migrations)
85
- system_call "heroku run rake db:migrate --app #{app_name}"
98
+ heroku.run_migrations
86
99
  end
87
100
 
88
101
  # Public: Restarts application on Heroku.
@@ -97,7 +110,7 @@ module Paratrooper
97
110
  def warm_instance(wait_time = 3)
98
111
  sleep wait_time
99
112
  notify(:warm_instance)
100
- system_call "curl -Il http://#{app_url}"
113
+ system_call "curl -Il #{protocol}://#{app_url}"
101
114
  end
102
115
 
103
116
  # Public: Execute common deploy steps.
@@ -134,14 +147,23 @@ module Paratrooper
134
147
  {
135
148
  app_name: app_name,
136
149
  app_url: app_url,
137
- git_remote: git_remote,
150
+ repo_remote: repo_remote,
151
+ deployment_remote: deployment_remote,
138
152
  tag_name: tag_name,
139
153
  match_tag: match_tag
140
154
  }
141
155
  end
142
156
 
143
- def git_remote
144
- "git@heroku.com:#{app_name}.git"
157
+ def git_remote(host, name)
158
+ "git@#{host}:#{name}.git"
159
+ end
160
+
161
+ def deployment_remote
162
+ git_remote(deployment_host, app_name)
163
+ end
164
+
165
+ def repo_remote
166
+ git_remote(repo_host, repo_name)
145
167
  end
146
168
 
147
169
  # Internal: Calls commands meant to go to system
@@ -1,15 +1,17 @@
1
1
  require 'heroku-api'
2
+ require 'rendezvous'
2
3
  require 'paratrooper/local_api_key_extractor'
3
4
 
4
5
  module Paratrooper
5
6
  class HerokuWrapper
6
- attr_reader :api_key, :app_name, :heroku_api, :key_extractor
7
+ attr_reader :api_key, :app_name, :heroku_api, :key_extractor, :rendezvous
7
8
 
8
9
  def initialize(app_name, options = {})
9
10
  @app_name = app_name
10
11
  @key_extractor = options[:key_extractor] || LocalApiKeyExtractor
11
12
  @api_key = options[:api_key] || key_extractor.get_credentials
12
13
  @heroku_api = options[:heroku_api] || Heroku::API.new(api_key: api_key)
14
+ @rendezvous = options[:rendezvous] || Rendezvous
13
15
  end
14
16
 
15
17
  def app_restart
@@ -28,6 +30,11 @@ module Paratrooper
28
30
  app_domain_name
29
31
  end
30
32
 
33
+ def run_migrations
34
+ data = heroku_api.post_ps(app_name, 'rake db:migrate', attach: 'true').body
35
+ rendezvous.start(:url => data['rendezvous_url'])
36
+ end
37
+
31
38
  private
32
39
  def app_domain_name
33
40
  if custom_domain_response
@@ -1,3 +1,3 @@
1
1
  module Paratrooper
2
- VERSION = "1.2.2"
2
+ VERSION = "1.3.1"
3
3
  end
data/paratrooper.gemspec CHANGED
@@ -21,5 +21,6 @@ Gem::Specification.new do |gem|
21
21
  gem.add_development_dependency 'rspec', '~> 2.12'
22
22
  gem.add_development_dependency 'pry'
23
23
  gem.add_dependency 'heroku-api', '~> 0.3'
24
+ gem.add_dependency 'rendezvous', "~> 0.0.1"
24
25
  gem.add_dependency 'netrc', '~> 0.7'
25
26
  end
@@ -20,6 +20,7 @@ describe Paratrooper::Deploy do
20
20
  app_restart: true,
21
21
  app_maintenance_on: true,
22
22
  app_maintenance_off: true,
23
+ run_migrations: true
23
24
  )
24
25
  end
25
26
  let(:system_caller) { double(:system_caller) }
@@ -53,6 +54,63 @@ describe Paratrooper::Deploy do
53
54
  expect(deployer.notifiers).to eq([notifiers])
54
55
  end
55
56
  end
57
+
58
+ describe "protocol" do
59
+ context "accepts :protocol" do
60
+ let(:options) { { protocol: 'https' } }
61
+
62
+ it "and responds to #protocol" do
63
+ expect(deployer.protocol).to eq('https')
64
+ end
65
+ end
66
+
67
+ context "no value passed" do
68
+ it "and responds to #protocol with default value" do
69
+ expect(deployer.protocol).to eq('http')
70
+ end
71
+ end
72
+ end
73
+
74
+ describe "repo_host" do
75
+ context "accepts :repo_host" do
76
+ let(:options) { { repo_host: 'repo_host_name' } }
77
+
78
+ it "and responds to #repo_host" do
79
+ expect(deployer.repo_host).to eq('repo_host_name')
80
+ end
81
+ end
82
+
83
+ context "no value passed" do
84
+ it "and responds to #repo_host with default value" do
85
+ expect(deployer.repo_host).to eq('github.com')
86
+ end
87
+ end
88
+ end
89
+
90
+ describe "repo_name" do
91
+ context "accepts :repo_name" do
92
+ let(:options) { { repo_name: 'repo_name_name' } }
93
+
94
+ it "and responds to #repo_name" do
95
+ expect(deployer.repo_name).to eq('repo_name_name')
96
+ end
97
+ end
98
+
99
+ context "no value passed" do
100
+ let(:app_name) { 'REPO_MAN' }
101
+ it "and responds to #repo_name with default value" do
102
+ expect(deployer.repo_name).to eq('REPO_MAN')
103
+ end
104
+ end
105
+ end
106
+
107
+ context "accepts :deployment_host" do
108
+ let(:options) { { deployment_host: 'host_name' } }
109
+
110
+ it "and responds to #notifiers" do
111
+ expect(deployer.deployment_host).to eq('host_name')
112
+ end
113
+ end
56
114
  end
57
115
 
58
116
  describe "#activate_maintenance_mode" do
@@ -111,7 +169,8 @@ describe Paratrooper::Deploy do
111
169
  end
112
170
 
113
171
  it 'pushes git tag' do
114
- system_caller.should_receive(:execute).with('git push -f git@heroku.com:app.git awesome')
172
+ expected = 'git push -f git@github.com:app.git awesome'
173
+ system_caller.should_receive(:execute).with(expected)
115
174
  deployer.update_repo_tag
116
175
  end
117
176
  end
@@ -155,8 +214,7 @@ describe Paratrooper::Deploy do
155
214
  end
156
215
 
157
216
  it 'pushes repo to heroku' do
158
- expected_call = 'heroku run rake db:migrate --app app'
159
- system_caller.should_receive(:execute).with(expected_call)
217
+ heroku.should_receive(:run_migrations)
160
218
  deployer.run_migrations
161
219
  end
162
220
  end
@@ -188,5 +246,15 @@ describe Paratrooper::Deploy do
188
246
  system_caller.should_receive(:execute).with(expected_call)
189
247
  deployer.warm_instance(0)
190
248
  end
249
+
250
+ context 'with optional protocol' do
251
+ let(:options) { { protocol: 'https' } }
252
+
253
+ it 'pings application url using the protocol' do
254
+ expected_call = 'curl -Il https://application_url'
255
+ system_caller.should_receive(:execute).with(expected_call)
256
+ deployer.warm_instance(0)
257
+ end
258
+ end
191
259
  end
192
260
  end
@@ -10,10 +10,12 @@ describe Paratrooper::HerokuWrapper do
10
10
  let(:default_options) do
11
11
  {
12
12
  heroku_api: heroku_api,
13
- key_extractor: double(:key_extractor, get_credentials: 'API_KEY')
13
+ key_extractor: double(:key_extractor, get_credentials: 'API_KEY'),
14
+ rendezvous: rendezvous
14
15
  }
15
16
  end
16
17
  let(:heroku_api) { double(:heroku_api) }
18
+ let(:rendezvous) { double(:rendezvous, start: nil) }
17
19
 
18
20
  describe '#api_key' do
19
21
  context 'when api_key is provided as an option' do
@@ -62,6 +64,20 @@ describe Paratrooper::HerokuWrapper do
62
64
  end
63
65
  end
64
66
 
67
+ describe '#run_migrations' do
68
+ it 'calls into the heroku api' do
69
+ heroku_api.should_receive(:post_ps).with(app_name, 'rake db:migrate', attach: 'true').and_return(double(body: ''))
70
+ wrapper.run_migrations
71
+ end
72
+
73
+ it 'uses waits for db migrations to run using rendezvous' do
74
+ data = { 'rendezvous_url' => 'the_url' }
75
+ heroku_api.stub_chain(:post_ps, :body).and_return(data)
76
+ rendezvous.should_receive(:start).with(:url => data['rendezvous_url'])
77
+ wrapper.run_migrations
78
+ end
79
+ end
80
+
65
81
  describe '#app_url' do
66
82
  context 'when custom domains are available' do
67
83
  let(:response) { double(:response, body: [{'domain' => 'APP_URL'}]) }
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paratrooper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Matt Polito
@@ -9,11 +10,12 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-03-27 00:00:00.000000000 Z
13
+ date: 2013-04-15 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rake
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ! '>='
19
21
  - !ruby/object:Gem::Version
@@ -21,6 +23,7 @@ dependencies:
21
23
  type: :development
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ! '>='
26
29
  - !ruby/object:Gem::Version
@@ -28,6 +31,7 @@ dependencies:
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: rspec
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
36
  - - ~>
33
37
  - !ruby/object:Gem::Version
@@ -35,6 +39,7 @@ dependencies:
35
39
  type: :development
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
44
  - - ~>
40
45
  - !ruby/object:Gem::Version
@@ -42,6 +47,7 @@ dependencies:
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: pry
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
52
  - - ! '>='
47
53
  - !ruby/object:Gem::Version
@@ -49,6 +55,7 @@ dependencies:
49
55
  type: :development
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
60
  - - ! '>='
54
61
  - !ruby/object:Gem::Version
@@ -56,6 +63,7 @@ dependencies:
56
63
  - !ruby/object:Gem::Dependency
57
64
  name: heroku-api
58
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
59
67
  requirements:
60
68
  - - ~>
61
69
  - !ruby/object:Gem::Version
@@ -63,13 +71,31 @@ dependencies:
63
71
  type: :runtime
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
76
  - - ~>
68
77
  - !ruby/object:Gem::Version
69
78
  version: '0.3'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rendezvous
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.0.1
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.0.1
70
95
  - !ruby/object:Gem::Dependency
71
96
  name: netrc
72
97
  requirement: !ruby/object:Gem::Requirement
98
+ none: false
73
99
  requirements:
74
100
  - - ~>
75
101
  - !ruby/object:Gem::Version
@@ -77,6 +103,7 @@ dependencies:
77
103
  type: :runtime
78
104
  prerelease: false
79
105
  version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
80
107
  requirements:
81
108
  - - ~>
82
109
  - !ruby/object:Gem::Version
@@ -85,16 +112,32 @@ description: Library to create task for deployment to Heroku
85
112
  email:
86
113
  - matt.polito@gmail.com
87
114
  - bthesorceror@gmail.com
88
- executables: []
115
+ executables:
116
+ - autospec
117
+ - coderay
118
+ - htmldiff
119
+ - ldiff
120
+ - pry
121
+ - rake
122
+ - rspec
89
123
  extensions: []
90
124
  extra_rdoc_files: []
91
125
  files:
126
+ - .bundle/config
92
127
  - .gitignore
128
+ - .ruby-version
93
129
  - Gemfile
94
130
  - Gemfile.lock
95
131
  - LICENSE.txt
96
132
  - README.md
97
133
  - Rakefile
134
+ - bin/autospec
135
+ - bin/coderay
136
+ - bin/htmldiff
137
+ - bin/ldiff
138
+ - bin/pry
139
+ - bin/rake
140
+ - bin/rspec
98
141
  - lib/paratrooper.rb
99
142
  - lib/paratrooper/deploy.rb
100
143
  - lib/paratrooper/heroku_wrapper.rb
@@ -113,26 +156,33 @@ files:
113
156
  - spec/spec_helper.rb
114
157
  homepage: http://github.com/mattpolito/paratrooper
115
158
  licenses: []
116
- metadata: {}
117
159
  post_install_message:
118
160
  rdoc_options: []
119
161
  require_paths:
120
162
  - lib
121
163
  required_ruby_version: !ruby/object:Gem::Requirement
164
+ none: false
122
165
  requirements:
123
166
  - - ! '>='
124
167
  - !ruby/object:Gem::Version
125
168
  version: '0'
169
+ segments:
170
+ - 0
171
+ hash: 2949666579820194565
126
172
  required_rubygems_version: !ruby/object:Gem::Requirement
173
+ none: false
127
174
  requirements:
128
175
  - - ! '>='
129
176
  - !ruby/object:Gem::Version
130
177
  version: '0'
178
+ segments:
179
+ - 0
180
+ hash: 2949666579820194565
131
181
  requirements: []
132
182
  rubyforge_project:
133
- rubygems_version: 2.0.3
183
+ rubygems_version: 1.8.23
134
184
  signing_key:
135
- specification_version: 4
185
+ specification_version: 3
136
186
  summary: Library to create task for deployment to Heroku
137
187
  test_files:
138
188
  - spec/fixtures/netrc
@@ -142,4 +192,3 @@ test_files:
142
192
  - spec/paratrooper/notifier_spec.rb
143
193
  - spec/paratrooper/notifiers/screen_notifier_spec.rb
144
194
  - spec/spec_helper.rb
145
- has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZjZmZGEzYjhjYzkwNjNmOWRhZTkwMTFkOGY5ZGMxNjdjN2UzZDZiYQ==
5
- data.tar.gz: !binary |-
6
- NWVhZTgyOTg4YTA5OWQ0NDIwMjJmYmRjNDJhNGM5OGM5NDFjZjFkYQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZWMzMmYxMjU4MjcwMDRiOWU2NzVhOGE1NDg4NWNiZDJmM2EzYjljN2Y0MGI3
10
- ZWMxZTgzOWQ5OGQ4NGJhMmNiOGE4OGE2YjMzZjEzYmJlMTA3ZGVjZjIyM2Fj
11
- NGYxNzFhZmU1ODg0ZmE3ZDEwOWM0MzI0MjdhYmZjZjQyZmZiODI=
12
- data.tar.gz: !binary |-
13
- NjRjMDVkNTk3NWFmZDgzZDhiMWNiNjU0YjZmMTJkZDM2NmI0NTc0OWViN2Jj
14
- N2RkMGEyNjU5OTkzYWEwZGI3YzA3YTlhNzQ1NjdhMjg1OWQ1YTliYjU3YWY3
15
- Njg1NTY3Y2Y0MTIzYTYzOGZjNTkyZDg0NGViMDQxNTMwMmQ5ZmI=