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 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=