paratrooper 1.2.2 → 1.3.1
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/.bundle/config +2 -0
- data/.ruby-version +1 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +7 -5
- data/README.md +14 -0
- data/bin/autospec +16 -0
- data/bin/coderay +16 -0
- data/bin/htmldiff +16 -0
- data/bin/ldiff +16 -0
- data/bin/pry +16 -0
- data/bin/rake +16 -0
- data/bin/rspec +16 -0
- data/lib/paratrooper/deploy.rb +45 -23
- data/lib/paratrooper/heroku_wrapper.rb +8 -1
- data/lib/paratrooper/version.rb +1 -1
- data/paratrooper.gemspec +1 -0
- data/spec/paratrooper/deploy_spec.rb +71 -3
- data/spec/paratrooper/heroku_wrapper_spec.rb +17 -1
- metadata +56 -7
- checksums.yaml +0 -15
data/.bundle/config
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3-p374
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
paratrooper (1.1
|
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:
|
10
|
+
remote: https://rubygems.org/
|
10
11
|
specs:
|
11
12
|
coderay (1.0.8)
|
12
13
|
diff-lcs (1.1.3)
|
13
|
-
excon (0.
|
14
|
-
heroku-api (0.3.
|
15
|
-
excon (~> 0.
|
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')
|
data/lib/paratrooper/deploy.rb
CHANGED
@@ -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
|
18
|
-
#
|
19
|
-
#
|
20
|
-
# :
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
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
|
28
|
-
@notifiers
|
29
|
-
@heroku
|
30
|
-
@tag_name
|
31
|
-
@match_tag
|
32
|
-
@system_caller
|
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 #{
|
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 #{
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
data/lib/paratrooper/version.rb
CHANGED
data/paratrooper.gemspec
CHANGED
@@ -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
|
-
|
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
|
-
|
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.
|
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-
|
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:
|
183
|
+
rubygems_version: 1.8.23
|
134
184
|
signing_key:
|
135
|
-
specification_version:
|
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=
|