capistrano 2.5.18 → 2.5.20

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.
@@ -1,3 +1,4 @@
1
+ require 'benchmark'
1
2
  require 'yaml'
2
3
  require 'capistrano/recipes/deploy/scm'
3
4
  require 'capistrano/recipes/deploy/strategy'
@@ -27,6 +28,9 @@ _cset :deploy_via, :checkout
27
28
  _cset(:deploy_to) { "/u/apps/#{application}" }
28
29
  _cset(:revision) { source.head }
29
30
 
31
+ # Maintenance base filename
32
+ _cset :maintenance_basename, "maintenance"
33
+
30
34
  # =========================================================================
31
35
  # These variables should NOT be changed unless you are very confident in
32
36
  # what you are doing. Make sure you understand all the implications of your
@@ -51,13 +55,13 @@ _cset(:shared_path) { File.join(deploy_to, shared_dir) }
51
55
  _cset(:current_path) { File.join(deploy_to, current_dir) }
52
56
  _cset(:release_path) { File.join(releases_path, release_name) }
53
57
 
54
- _cset(:releases) { capture("ls -x #{releases_path}").split.sort }
58
+ _cset(:releases) { capture("ls -x #{releases_path}", :except => { :no_release => true }).split.sort }
55
59
  _cset(:current_release) { File.join(releases_path, releases.last) }
56
60
  _cset(:previous_release) { releases.length > 1 ? File.join(releases_path, releases[-2]) : nil }
57
61
 
58
- _cset(:current_revision) { capture("cat #{current_path}/REVISION").chomp }
59
- _cset(:latest_revision) { capture("cat #{current_release}/REVISION").chomp }
60
- _cset(:previous_revision) { capture("cat #{previous_release}/REVISION").chomp }
62
+ _cset(:current_revision) { capture("cat #{current_path}/REVISION", :except => { :no_release => true }).chomp }
63
+ _cset(:latest_revision) { capture("cat #{current_release}/REVISION", :except => { :no_release => true }).chomp }
64
+ _cset(:previous_revision) { capture("cat #{previous_release}/REVISION", :except => { :no_release => true }).chomp if previous_release }
61
65
 
62
66
  _cset(:run_method) { fetch(:use_sudo, true) ? :sudo : :run }
63
67
 
@@ -95,10 +99,14 @@ end
95
99
  # returns the command output as a string
96
100
  def run_locally(cmd)
97
101
  logger.trace "executing locally: #{cmd.inspect}" if logger
98
- output_on_stdout = `#{cmd}`
102
+ output_on_stdout = nil
103
+ elapsed = Benchmark.realtime do
104
+ output_on_stdout = `#{cmd}`
105
+ end
99
106
  if $?.to_i > 0 # $? is command exit code (posix style)
100
107
  raise Capistrano::LocalArgumentError, "Command #{cmd} returned status code #{$?}"
101
108
  end
109
+ logger.trace "command finished in #{(elapsed * 1000).round}ms" if logger
102
110
  output_on_stdout
103
111
  end
104
112
 
@@ -224,7 +232,8 @@ namespace :deploy do
224
232
  public/stylesheets, and public/javascripts so that the times are \
225
233
  consistent (so that asset timestamping works). This touch process \
226
234
  is only carried out if the :normalize_asset_timestamps variable is \
227
- set to true, which is the default.
235
+ set to true, which is the default The asset directories can be overridden \
236
+ using the :public_children variable.
228
237
  DESC
229
238
  task :finalize_update, :except => { :no_release => true } do
230
239
  run "chmod -R g+w #{latest_release}" if fetch(:group_writable, true)
@@ -242,7 +251,7 @@ namespace :deploy do
242
251
 
243
252
  if fetch(:normalize_asset_timestamps, true)
244
253
  stamp = Time.now.utc.strftime("%Y%m%d%H%M.%S")
245
- asset_paths = %w(images stylesheets javascripts).map { |p| "#{latest_release}/public/#{p}" }.join(" ")
254
+ asset_paths = fetch(:public_children, %w(images stylesheets javascripts)).map { |p| "#{latest_release}/public/#{p}" }.join(" ")
246
255
  run "find #{asset_paths} -exec touch -t #{stamp} {} ';'; true", :env => { "TZ" => "UTC" }
247
256
  end
248
257
  end
@@ -382,11 +391,10 @@ namespace :deploy do
382
391
 
383
392
  directory = case migrate_target.to_sym
384
393
  when :current then current_path
385
- when :latest then current_release
394
+ when :latest then latest_release
386
395
  else raise ArgumentError, "unknown migration target #{migrate_target.inspect}"
387
396
  end
388
397
 
389
- puts "#{migrate_target} => #{directory}"
390
398
  run "cd #{directory}; #{rake} RAILS_ENV=#{rails_env} #{migrate_env} db:migrate"
391
399
  end
392
400
 
@@ -536,7 +544,7 @@ namespace :deploy do
536
544
  namespace :web do
537
545
  desc <<-DESC
538
546
  Present a maintenance page to visitors. Disables your application's web \
539
- interface by writing a "maintenance.html" file to each web server. The \
547
+ interface by writing a "#{maintenance_basename}.html" file to each web server. The \
540
548
  servers must be configured to detect the presence of this file, and if \
541
549
  it is present, always display it instead of performing the request.
542
550
 
@@ -552,18 +560,18 @@ namespace :deploy do
552
560
  DESC
553
561
  task :disable, :roles => :web, :except => { :no_release => true } do
554
562
  require 'erb'
555
- on_rollback { run "rm #{shared_path}/system/maintenance.html" }
563
+ on_rollback { run "rm #{shared_path}/system/#{maintenance_basename}.html" }
556
564
 
557
565
  warn <<-EOHTACCESS
558
-
566
+
559
567
  # Please add something like this to your site's htaccess to redirect users to the maintenance page.
560
568
  # More Info: http://www.shiftcommathree.com/articles/make-your-rails-maintenance-page-respond-with-a-503
561
-
562
- ErrorDocument 503 /system/maintenance.html
569
+
570
+ ErrorDocument 503 /system/#{maintenance_basename}.html
563
571
  RewriteEngine On
564
572
  RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$
565
- RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
566
- RewriteCond %{SCRIPT_FILENAME} !maintenance.html
573
+ RewriteCond %{DOCUMENT_ROOT}/system/#{maintenance_basename}.html -f
574
+ RewriteCond %{SCRIPT_FILENAME} !#{maintenance_basename}.html
567
575
  RewriteRule ^.*$ - [redirect=503,last]
568
576
  EOHTACCESS
569
577
 
@@ -573,17 +581,17 @@ namespace :deploy do
573
581
  template = File.read(File.join(File.dirname(__FILE__), "templates", "maintenance.rhtml"))
574
582
  result = ERB.new(template).result(binding)
575
583
 
576
- put result, "#{shared_path}/system/maintenance.html", :mode => 0644
584
+ put result, "#{shared_path}/system/#{maintenance_basename}.html", :mode => 0644
577
585
  end
578
586
 
579
587
  desc <<-DESC
580
588
  Makes the application web-accessible again. Removes the \
581
- "maintenance.html" page generated by deploy:web:disable, which (if your \
589
+ "#{maintenance_basename}.html" page generated by deploy:web:disable, which (if your \
582
590
  web servers are configured correctly) will make your application \
583
591
  web-accessible again.
584
592
  DESC
585
593
  task :enable, :roles => :web, :except => { :no_release => true } do
586
- run "rm #{shared_path}/system/maintenance.html"
594
+ run "rm #{shared_path}/system/#{maintenance_basename}.html"
587
595
  end
588
596
  end
589
597
  end
@@ -37,13 +37,13 @@ class ConfigurationActionsFileTransferTest < Test::Unit::TestCase
37
37
 
38
38
  def test_upload_with_mode_should_try_to_chmod
39
39
  @config.expects(:transfer).with(:up, "testl.txt", "testr.txt", :foo => "bar")
40
- @config.expects(:run).with("chmod 775 testr.txt")
40
+ @config.expects(:run).with("chmod 775 testr.txt", {:foo => "bar"})
41
41
  @config.upload("testl.txt", "testr.txt", :mode => 0775, :foo => "bar")
42
42
  end
43
43
 
44
44
  def test_upload_with_symbolic_mode_should_try_to_chmod
45
45
  @config.expects(:transfer).with(:up, "testl.txt", "testr.txt", :foo => "bar")
46
- @config.expects(:run).with("chmod g+w testr.txt")
46
+ @config.expects(:run).with("chmod g+w testr.txt", {:foo => "bar"})
47
47
  @config.upload("testl.txt", "testr.txt", :mode => "g+w", :foo => "bar")
48
48
  end
49
49
 
@@ -58,4 +58,4 @@ class ConfigurationActionsFileTransferTest < Test::Unit::TestCase
58
58
  Capistrano::Transfer.expects(:process).with(:up, "testl.txt", "testr.txt", [1,2,3], {:foo => "bar", :logger => @config.logger})
59
59
  @config.transfer(:up, "testl.txt", "testr.txt", :foo => "bar")
60
60
  end
61
- end
61
+ end
@@ -37,6 +37,12 @@ class RemoteDependencyTest < Test::Unit::TestCase
37
37
  assert_equal "gem `capistrano' 9.9 could not be found (host)", @dependency.message
38
38
  end
39
39
 
40
+ def test_should_use_standard_error_message_for_deb
41
+ setup_for_a_configuration_deb_run("dpkg", "1.15", false)
42
+ @dependency.deb("dpkg", "1.15")
43
+ assert_equal "package `dpkg' 1.15 could not be found (host)", @dependency.message
44
+ end
45
+
40
46
  def test_should_fail_if_directory_not_found
41
47
  setup_for_a_configuration_run("test -d /data", false)
42
48
  assert !@dependency.directory("/data").pass?
@@ -52,7 +58,7 @@ class RemoteDependencyTest < Test::Unit::TestCase
52
58
  assert !@dependency.file("/data/foo.txt").pass?
53
59
  end
54
60
 
55
- def test_should_pas_if_file_found
61
+ def test_should_pass_if_file_found
56
62
  setup_for_a_configuration_run("test -f /data/foo.txt", true)
57
63
  assert @dependency.file("/data/foo.txt").pass?
58
64
  end
@@ -87,6 +93,16 @@ class RemoteDependencyTest < Test::Unit::TestCase
87
93
  assert @dependency.gem("capistrano", 9.9).pass?
88
94
  end
89
95
 
96
+ def test_should_pass_if_deb_found
97
+ setup_for_a_configuration_deb_run("dpkg", "1.15", true)
98
+ assert @dependency.deb("dpkg", "1.15").pass?
99
+ end
100
+
101
+ def test_should_fail_if_deb_not_found
102
+ setup_for_a_configuration_deb_run("dpkg", "1.15", false)
103
+ assert !@dependency.deb("dpkg", "1.15").pass?
104
+ end
105
+
90
106
  def test_should_use_alternative_message_if_provided
91
107
  setup_for_a_configuration_run("which cat", false)
92
108
  @dependency.command("cat").or("Sorry")
@@ -111,4 +127,9 @@ class RemoteDependencyTest < Test::Unit::TestCase
111
127
  find_gem_cmd = "gem specification --version '#{version}' #{name} 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }'"
112
128
  setup_for_a_configuration_run(find_gem_cmd, passing)
113
129
  end
130
+
131
+ def setup_for_a_configuration_deb_run(name, version, passing)
132
+ find_deb_cmd = "dpkg -s #{name} | grep '^Version: #{version}'"
133
+ setup_for_a_configuration_run(find_deb_cmd, passing)
134
+ end
114
135
  end
@@ -40,7 +40,7 @@ class DeploySCMGitTest < Test::Unit::TestCase
40
40
 
41
41
  # with submodules
42
42
  @config[:git_enable_submodules] = true
43
- assert_equal "#{git} clone -q git@somehost.com:project.git /var/www && cd /var/www && #{git} checkout -q -b deploy #{rev} && #{git} submodule -q init && #{git} submodule -q sync && #{git} submodule -q update", @source.checkout(rev, dest)
43
+ assert_equal "#{git} clone -q git@somehost.com:project.git /var/www && cd /var/www && #{git} checkout -q -b deploy #{rev} && #{git} submodule -q init && #{git} submodule -q sync && #{git} submodule -q update --recursive", @source.checkout(rev, dest)
44
44
  end
45
45
 
46
46
  def test_checkout_with_verbose_should_not_use_q_switch
@@ -138,7 +138,7 @@ class DeploySCMGitTest < Test::Unit::TestCase
138
138
  @config[:git_enable_submodules] = true
139
139
  dest = "/var/www"
140
140
  rev = 'c2d9e79'
141
- assert_equal "git clone -q -o username git@somehost.com:project.git /var/www && cd /var/www && git checkout -q -b deploy #{rev} && git submodule -q init && git submodule -q sync && git submodule -q update", @source.checkout(rev, dest)
141
+ assert_equal "git clone -q -o username git@somehost.com:project.git /var/www && cd /var/www && git checkout -q -b deploy #{rev} && git submodule -q init && git submodule -q sync && git submodule -q update --recursive", @source.checkout(rev, dest)
142
142
  end
143
143
 
144
144
  # Tests from base_test.rb, makin' sure we didn't break anything up there!
@@ -14,16 +14,16 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
14
14
  @config.stubs(:source).returns(@source)
15
15
  @strategy = Capistrano::Deploy::Strategy::Copy.new(@config)
16
16
  end
17
-
17
+
18
18
  def test_deploy_with_defaults_should_use_remote_gtar
19
19
  @config[:copy_remote_tar] = 'gtar'
20
-
20
+
21
21
  Dir.expects(:tmpdir).returns("/temp/dir")
22
22
  @source.expects(:checkout).with("154", "/temp/dir/1234567890").returns(:local_checkout)
23
23
  @strategy.expects(:system).with(:local_checkout)
24
24
 
25
25
  Dir.expects(:chdir).with("/temp/dir").yields
26
- @strategy.expects(:system).with("tar czf 1234567890.tar.gz 1234567890")
26
+ @strategy.expects(:system).with("tar chzf 1234567890.tar.gz 1234567890")
27
27
  @strategy.expects(:upload).with("/temp/dir/1234567890.tar.gz", "/tmp/1234567890.tar.gz")
28
28
  @strategy.expects(:run).with("cd /u/apps/test/releases && gtar xzf /tmp/1234567890.tar.gz && rm /tmp/1234567890.tar.gz")
29
29
 
@@ -33,19 +33,19 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
33
33
 
34
34
  FileUtils.expects(:rm).with("/temp/dir/1234567890.tar.gz")
35
35
  FileUtils.expects(:rm_rf).with("/temp/dir/1234567890")
36
-
36
+
37
37
  @strategy.deploy!
38
38
  end
39
-
39
+
40
40
  def test_deploy_with_defaults_should_use_local_gtar
41
41
  @config[:copy_local_tar] = 'gtar'
42
-
42
+
43
43
  Dir.expects(:tmpdir).returns("/temp/dir")
44
44
  @source.expects(:checkout).with("154", "/temp/dir/1234567890").returns(:local_checkout)
45
45
  @strategy.expects(:system).with(:local_checkout)
46
46
 
47
47
  Dir.expects(:chdir).with("/temp/dir").yields
48
- @strategy.expects(:system).with("gtar czf 1234567890.tar.gz 1234567890")
48
+ @strategy.expects(:system).with("gtar chzf 1234567890.tar.gz 1234567890")
49
49
  @strategy.expects(:upload).with("/temp/dir/1234567890.tar.gz", "/tmp/1234567890.tar.gz")
50
50
  @strategy.expects(:run).with("cd /u/apps/test/releases && tar xzf /tmp/1234567890.tar.gz && rm /tmp/1234567890.tar.gz")
51
51
 
@@ -55,9 +55,9 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
55
55
 
56
56
  FileUtils.expects(:rm).with("/temp/dir/1234567890.tar.gz")
57
57
  FileUtils.expects(:rm_rf).with("/temp/dir/1234567890")
58
-
58
+
59
59
  @strategy.deploy!
60
- end
60
+ end
61
61
 
62
62
  def test_deploy_with_defaults_should_use_tar_gz_and_checkout
63
63
  Dir.expects(:tmpdir).returns("/temp/dir")
@@ -130,7 +130,7 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
130
130
  @source.expects(:checkout).with("154", "/temp/dir/1234567890").returns(:local_checkout)
131
131
 
132
132
  @strategy.expects(:system).with(:local_checkout)
133
- @strategy.expects(:system).with("tar cjf 1234567890.tar.bz2 1234567890")
133
+ @strategy.expects(:system).with("tar chjf 1234567890.tar.bz2 1234567890")
134
134
  @strategy.expects(:upload).with("/temp/dir/1234567890.tar.bz2", "/tmp/1234567890.tar.bz2")
135
135
  @strategy.expects(:run).with("cd /u/apps/test/releases && tar xjf /tmp/1234567890.tar.bz2 && rm /tmp/1234567890.tar.bz2")
136
136
 
@@ -143,17 +143,17 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
143
143
 
144
144
  @strategy.deploy!
145
145
  end
146
-
146
+
147
147
  def test_deploy_with_unknown_compression_type_should_error
148
148
  @config[:copy_compression] = :bogus
149
149
  Dir.expects(:tmpdir).returns("/temp/dir")
150
150
  @source.expects(:checkout).with("154", "/temp/dir/1234567890").returns(:local_checkout)
151
151
  @strategy.stubs(:system)
152
152
  File.stubs(:open)
153
-
153
+
154
154
  assert_raises(ArgumentError) { @strategy.deploy! }
155
155
  end
156
-
156
+
157
157
  def test_deploy_with_custom_copy_dir_should_use_that_as_tmpdir
158
158
  Dir.expects(:tmpdir).never
159
159
  Dir.expects(:chdir).with("/other/path").yields
@@ -161,7 +161,7 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
161
161
  @source.expects(:checkout).with("154", "/other/path/1234567890").returns(:local_checkout)
162
162
 
163
163
  @strategy.expects(:system).with(:local_checkout)
164
- @strategy.expects(:system).with("tar czf 1234567890.tar.gz 1234567890")
164
+ @strategy.expects(:system).with("tar chzf 1234567890.tar.gz 1234567890")
165
165
  @strategy.expects(:upload).with("/other/path/1234567890.tar.gz", "/tmp/1234567890.tar.gz")
166
166
  @strategy.expects(:run).with("cd /u/apps/test/releases && tar xzf /tmp/1234567890.tar.gz && rm /tmp/1234567890.tar.gz")
167
167
 
@@ -182,7 +182,7 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
182
182
  @source.expects(:checkout).returns(:local_checkout)
183
183
 
184
184
  @strategy.expects(:system).with(:local_checkout)
185
- @strategy.expects(:system).with("tar czf 1234567890.tar.gz 1234567890")
185
+ @strategy.expects(:system).with("tar chzf 1234567890.tar.gz 1234567890")
186
186
  @strategy.expects(:upload).with("/temp/dir/1234567890.tar.gz", "/somewhere/else/1234567890.tar.gz")
187
187
  @strategy.expects(:run).with("cd /u/apps/test/releases && tar xzf /somewhere/else/1234567890.tar.gz && rm /somewhere/else/1234567890.tar.gz")
188
188
 
@@ -288,7 +288,7 @@ class DeployStrategyCopyTest < Test::Unit::TestCase
288
288
 
289
289
  def prepare_standard_compress_and_copy!
290
290
  Dir.expects(:chdir).with("/temp/dir").yields
291
- @strategy.expects(:system).with("tar czf 1234567890.tar.gz 1234567890")
291
+ @strategy.expects(:system).with("tar chzf 1234567890.tar.gz 1234567890")
292
292
  @strategy.expects(:upload).with("/temp/dir/1234567890.tar.gz", "/tmp/1234567890.tar.gz")
293
293
  @strategy.expects(:run).with("cd /u/apps/test/releases && tar xzf /tmp/1234567890.tar.gz && rm /tmp/1234567890.tar.gz")
294
294
 
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.18
4
+ hash: 51
5
+ prerelease: false
6
+ segments:
7
+ - 2
8
+ - 5
9
+ - 20
10
+ version: 2.5.20
5
11
  platform: ruby
6
12
  authors:
7
13
  - Jamis Buck
@@ -10,69 +16,171 @@ autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2010-03-14 00:00:00 +01:00
19
+ date: 2011-03-16 00:00:00 +01:00
14
20
  default_executable:
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
17
34
  name: net-ssh
35
+ requirement: *id001
36
+ - !ruby/object:Gem::Dependency
18
37
  type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
21
41
  requirements:
22
42
  - - ">="
23
43
  - !ruby/object:Gem::Version
24
- version: 2.0.14
25
- version:
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ name: net-ssh-gateway
49
+ requirement: *id002
26
50
  - !ruby/object:Gem::Dependency
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
27
62
  name: net-sftp
63
+ requirement: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ name: net-scp
77
+ requirement: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ name: highline
91
+ requirement: *id005
92
+ - !ruby/object:Gem::Dependency
28
93
  type: :runtime
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
94
+ prerelease: false
95
+ version_requirements: &id006 !ruby/object:Gem::Requirement
96
+ none: false
31
97
  requirements:
32
98
  - - ">="
33
99
  - !ruby/object:Gem::Version
100
+ hash: 19
101
+ segments:
102
+ - 2
103
+ - 0
104
+ - 14
105
+ version: 2.0.14
106
+ name: net-ssh
107
+ requirement: *id006
108
+ - !ruby/object:Gem::Dependency
109
+ type: :runtime
110
+ prerelease: false
111
+ version_requirements: &id007 !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ hash: 15
117
+ segments:
118
+ - 2
119
+ - 0
120
+ - 0
34
121
  version: 2.0.0
35
- version:
122
+ name: net-sftp
123
+ requirement: *id007
36
124
  - !ruby/object:Gem::Dependency
37
- name: net-scp
38
125
  type: :runtime
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
126
+ prerelease: false
127
+ version_requirements: &id008 !ruby/object:Gem::Requirement
128
+ none: false
41
129
  requirements:
42
130
  - - ">="
43
131
  - !ruby/object:Gem::Version
132
+ hash: 23
133
+ segments:
134
+ - 1
135
+ - 0
136
+ - 0
44
137
  version: 1.0.0
45
- version:
138
+ name: net-scp
139
+ requirement: *id008
46
140
  - !ruby/object:Gem::Dependency
47
- name: net-ssh-gateway
48
141
  type: :runtime
49
- version_requirement:
50
- version_requirements: !ruby/object:Gem::Requirement
142
+ prerelease: false
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
144
+ none: false
51
145
  requirements:
52
146
  - - ">="
53
147
  - !ruby/object:Gem::Version
148
+ hash: 23
149
+ segments:
150
+ - 1
151
+ - 0
152
+ - 0
54
153
  version: 1.0.0
55
- version:
154
+ name: net-ssh-gateway
155
+ requirement: *id009
56
156
  - !ruby/object:Gem::Dependency
57
- name: highline
58
157
  type: :runtime
59
- version_requirement:
60
- version_requirements: !ruby/object:Gem::Requirement
158
+ prerelease: false
159
+ version_requirements: &id010 !ruby/object:Gem::Requirement
160
+ none: false
61
161
  requirements:
62
162
  - - ">="
63
163
  - !ruby/object:Gem::Version
164
+ hash: 3
165
+ segments:
166
+ - 0
64
167
  version: "0"
65
- version:
168
+ name: highline
169
+ requirement: *id010
66
170
  - !ruby/object:Gem::Dependency
67
- name: mocha
68
171
  type: :development
69
- version_requirement:
70
- version_requirements: !ruby/object:Gem::Requirement
172
+ prerelease: false
173
+ version_requirements: &id011 !ruby/object:Gem::Requirement
174
+ none: false
71
175
  requirements:
72
176
  - - ">="
73
177
  - !ruby/object:Gem::Version
178
+ hash: 3
179
+ segments:
180
+ - 0
74
181
  version: "0"
75
- version:
182
+ name: mocha
183
+ requirement: *id011
76
184
  description: Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH.
77
185
  email:
78
186
  - jamis@jamisbuck.org
@@ -83,11 +191,11 @@ executables:
83
191
  extensions: []
84
192
 
85
193
  extra_rdoc_files:
86
- - README
194
+ - README.mdown
87
195
  files:
88
- - .gitignore
89
196
  - CHANGELOG
90
- - README
197
+ - Gemfile
198
+ - README.mdown
91
199
  - Rakefile
92
200
  - VERSION
93
201
  - bin/cap
@@ -196,29 +304,35 @@ homepage: http://github.com/capistrano/capistrano
196
304
  licenses: []
197
305
 
198
306
  post_install_message:
199
- rdoc_options:
200
- - --charset=UTF-8
307
+ rdoc_options: []
308
+
201
309
  require_paths:
202
310
  - lib
203
311
  required_ruby_version: !ruby/object:Gem::Requirement
312
+ none: false
204
313
  requirements:
205
314
  - - ">="
206
315
  - !ruby/object:Gem::Version
316
+ hash: 3
317
+ segments:
318
+ - 0
207
319
  version: "0"
208
- version:
209
320
  required_rubygems_version: !ruby/object:Gem::Requirement
321
+ none: false
210
322
  requirements:
211
323
  - - ">="
212
324
  - !ruby/object:Gem::Version
325
+ hash: 3
326
+ segments:
327
+ - 0
213
328
  version: "0"
214
- version:
215
329
  requirements: []
216
330
 
217
331
  rubyforge_project:
218
- rubygems_version: 1.3.5
332
+ rubygems_version: 1.3.7
219
333
  signing_key:
220
334
  specification_version: 3
221
- summary: "Capistrano \xE2\x80\x93 Welcome to easy deployment with Ruby over SSH"
335
+ summary: Capistrano - Welcome to easy deployment with Ruby over SSH
222
336
  test_files:
223
337
  - test/cli/execute_test.rb
224
338
  - test/cli/help_test.rb
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- coverage
2
- doc
3
- pkg
4
- *.swp
5
- *.patch
6
- *.gem
7
- *.sh
8
- .DS_Store
9
- capistrano.gemspec