capistrano-exts 1.11.0 → 1.11.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/README.md CHANGED
@@ -18,7 +18,7 @@ gem install capistrano-exts
18
18
  or add it to your Gemfile
19
19
 
20
20
  ```ruby
21
- gem 'capistrano-exts', '>=1.11.0', :require => false
21
+ gem 'capistrano-exts', '>=1.11.1', :require => false
22
22
  ```
23
23
 
24
24
  # Setup
@@ -27,6 +27,7 @@ EOD
27
27
 
28
28
  # Run-time dependencies
29
29
  s.add_dependency('capistrano', '~>2.8.0')
30
+ s.add_dependency('capistrano_colors', '~>0.5.5')
30
31
  s.add_dependency('i18n', '~>0.6.0')
31
32
  s.add_dependency('activesupport', '~>3.1.0')
32
33
 
@@ -27,6 +27,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
27
27
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
28
28
  set :public_path, -> { "#{fetch :current_path}/public" }
29
29
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
30
+ set :rails_env, "development"
30
31
 
31
32
  # How should we deploy?
32
33
  # Valid options:
@@ -27,6 +27,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
27
27
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
28
28
  set :public_path, -> { "#{fetch :current_path}/public" }
29
29
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
30
+ set :rails_env, "production"
30
31
 
31
32
  # How should we deploy?
32
33
  # Valid options:
@@ -27,6 +27,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
27
27
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
28
28
  set :public_path, -> { "#{fetch :current_path}/public" }
29
29
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
30
+ set :rails_env, "staging"
30
31
 
31
32
  # How should we deploy?
32
33
  # Valid options:
@@ -27,6 +27,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
27
27
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
28
28
  set :public_path, -> { "#{fetch :current_path}/public" }
29
29
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
30
+ set :rails_env, "development"
30
31
 
31
32
  # How should we deploy?
32
33
  # Valid options:
@@ -27,6 +27,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
27
27
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
28
28
  set :public_path, -> { "#{fetch :current_path}/public" }
29
29
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
30
+ set :rails_env, "production"
30
31
 
31
32
  # How should we deploy?
32
33
  # Valid options:
@@ -27,6 +27,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
27
27
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
28
28
  set :public_path, -> { "#{fetch :current_path}/public" }
29
29
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
30
+ set :rails_env, "staging"
30
31
 
31
32
  # How should we deploy?
32
33
  # Valid options:
@@ -7,8 +7,23 @@ $: << ROOT_PATH if File.directory?(ROOT_PATH) and not $:.include?(ROOT_PATH)
7
7
  # Require our core extensions
8
8
  require 'capistrano-exts/core_ext'
9
9
 
10
+ # require Capistrano colors
11
+ require 'capistrano/configuration'
12
+ require 'capistrano/logger'
13
+ require 'capistrano_colors/configuration'
14
+ require 'capistrano_colors/logger'
15
+
16
+ # Printed credentials
17
+ Capistrano::Logger.add_color_matcher({ :match => /adapter:|hostname:|username:|password:/, :color => :red, :level => Capistrano::Logger::TRACE, :prio => -20, :attribute => :blink })
18
+
19
+ # Warnings
20
+ Capistrano::Logger.add_color_matcher({ :match => /WARNING:/, :color => :yellow, :level => Capistrano::Logger::INFO, :prio => -20 })
21
+
22
+ # Errors
23
+ Capistrano::Logger.add_color_matcher({ :match => /ERROR:/, :color => :red, :level => Capistrano::Logger::IMPORTANT, :prio => -20 })
24
+
10
25
  # Require requested receipts
11
- require 'capistrano-exts/receipts' if defined?(Capistrano::Configuration)
26
+ require 'capistrano-exts/receipts'
12
27
 
13
28
  # Require all servers
14
29
  Dir["#{ROOT_PATH}/capistrano-exts/servers/*.rb"].each { |f| require f }
@@ -48,7 +48,7 @@ Capistrano::Configuration.instance(:must_exist).load do
48
48
 
49
49
  # localconfig
50
50
  if mysql_credentials.blank?
51
- puts "WARNING: The mysql credential file can't be found, localconfig has just been copied from the sample file"
51
+ logger.info "WARNING: The mysql credential file can't be found, localconfig has just been copied from the sample file"
52
52
  end
53
53
 
54
54
  # Add MySQL credentials
@@ -61,7 +61,7 @@ Capistrano::Configuration.instance(:must_exist).load do
61
61
 
62
62
  put localconfig, localconfig_php_config_path
63
63
  else
64
- puts "WARNING: The file '#{localconfig_php_config_path}' already exists, not overwriting."
64
+ logger.info "WARNING: The file '#{localconfig_php_config_path}' already exists, not overwriting."
65
65
  end
66
66
  end
67
67
 
@@ -92,7 +92,7 @@ Capistrano::Configuration.instance(:must_exist).load do
92
92
  # Tranfer the contents to the local system
93
93
  get latest_contents_backup, export_filename
94
94
 
95
- puts "Contents has been downloaded to #{export_filename}"
95
+ logger.info "Contents has been downloaded to #{export_filename}"
96
96
  exit 0
97
97
  end
98
98
 
@@ -102,7 +102,7 @@ Capistrano::Configuration.instance(:must_exist).load do
102
102
  argv_file_index = ARGV.index("contents:import") + 1
103
103
 
104
104
  unless ARGV.size >= (argv_file_index + 1) and File.exists?(ARGV[argv_file_index])
105
- puts "ERROR: please run 'cap import <gzipped tar>'"
105
+ logger.important "ERROR: please run 'cap import <gzipped tar>'"
106
106
  exit 1
107
107
  else
108
108
  # The contents file name
@@ -13,8 +13,8 @@ Capistrano::Configuration.instance(:must_exist).load do
13
13
  desc "Check if the remote is ready, should we run cap deploy:setup?"
14
14
  task :check_if_remote_ready, :roles => :web do
15
15
  unless remote_file_exists?("#{shared_path}")
16
- puts "ERROR: The project is not ready for deployment."
17
- puts "please run `cap deploy:setup"
16
+ logger.important "ERROR: The project is not ready for deployment."
17
+ logger.important "please run `cap deploy:setup"
18
18
  exit
19
19
  end
20
20
  end
@@ -67,12 +67,12 @@ Capistrano::Configuration.instance(:must_exist).load do
67
67
  #{try_sudo} ln -nsf #{fetch :public_path} #{deploy_to}/#{folder}
68
68
  CMD
69
69
  rescue Capistrano::CommandError
70
- puts "WARNING: I couldn't replace the old htdocs please do so manually"
70
+ logger.info "WARNING: I couldn't replace the old htdocs please do so manually"
71
71
  end
72
72
  end
73
73
  end
74
74
 
75
- puts "The public folders has been moved to the old folder"
75
+ logger.info "The public folders has been moved to the old folder"
76
76
  end
77
77
  end
78
78
 
@@ -12,6 +12,9 @@ Capistrano::Configuration.instance(:must_exist).load do
12
12
  desc "[internal] Shared items"
13
13
  task :shared_items, :roles => :app, :except => { :no_release => true } do
14
14
  if exists?(:shared_items)
15
+ run <<-CMD
16
+ #{try_sudo} mkdir -p #{fetch :shared_path}/items
17
+ CMD
15
18
  link_files "#{fetch :shared_path}/items", fetch(:shared_items)
16
19
  end
17
20
  end
@@ -19,6 +22,9 @@ Capistrano::Configuration.instance(:must_exist).load do
19
22
  desc "[internal] Configuration files"
20
23
  task :config_files, :roles => :app, :except => { :no_release => true } do
21
24
  if exists?(:configuration_files)
25
+ run <<-CMD
26
+ #{try_sudo} mkdir -p #{fetch :shared_path}/config
27
+ CMD
22
28
  link_files "#{fetch :shared_path}/config", fetch(:configuration_files)
23
29
  end
24
30
  end
@@ -38,7 +38,7 @@ Capistrano::Configuration.instance(:must_exist).load do
38
38
  run <<-CMD
39
39
  #{try_sudo} touch #{path}/#{file_name}
40
40
  CMD
41
- puts "WARNING: You should edit '#{path}/#{file_name}' or re-create it as a folder if that's your intention."
41
+ logger.info "WARNING: You should edit '#{path}/#{file_name}' or re-create it as a folder if that's your intention."
42
42
  end
43
43
  end
44
44
 
@@ -88,11 +88,39 @@ Capistrano::Configuration.instance(:must_exist).load do
88
88
  end
89
89
 
90
90
  # Helper for some mysql tasks
91
- def mysql_credentials_formatted(mysql_credentials)
91
+ def credentials_formatted(credentials, adapter_mapping = {})
92
+ if adapter_mapping.include?(credentials[:adapter])
93
+ adapter = adapter_mapping[credentials[:adapter]]
94
+ else
95
+ adapter = credentials[:adapter]
96
+ end
97
+
98
+ return <<-EOS
99
+ adapter: #{adapter}
100
+ hostname: #{credentials[:host]}
101
+ username: #{credentials[:user]}
102
+ password: #{credentials[:pass]}
103
+ EOS
104
+ end
105
+
106
+ # Helper for rails database.yml generator
107
+ def rails_database_yml(credentials, adapter_mapping = {})
108
+ if adapter_mapping.include?(credentials[:adapter])
109
+ adapter = adapter_mapping[credentials[:adapter]]
110
+ else
111
+ adapter = credentials[:adapter]
112
+ end
113
+
92
114
  return <<-EOS
93
- hostname: #{mysql_credentials[:host]}
94
- username: #{mysql_credentials[:user]}
95
- password: #{mysql_credentials[:pass]}
115
+ #{fetch :rails_env}:
116
+ adapter: #{adapter}
117
+ encoding: utf8
118
+ reconnect: false
119
+ pool: 10
120
+ host: #{credentials[:host]}
121
+ username: #{credentials[:user]}
122
+ password: #{credentials[:pass]}
123
+ database: #{fetch :mysql_db_name}
96
124
  EOS
97
125
  end
98
126
 
@@ -12,8 +12,8 @@ Capistrano::Configuration.instance(:must_exist).load do
12
12
  desc "Check if the branch is ready"
13
13
  task :check_if_branch_is_ready, :roles => :app, :except => { :no_release => true } do
14
14
  unless `git rev-parse #{branch}` == `git rev-parse origin/#{branch}`
15
- puts "ERROR: #{branch} is not the same as origin/#{branch}"
16
- puts "Run `git push` to sync changes."
15
+ logger.important "ERROR: #{branch} is not the same as origin/#{branch}"
16
+ logger.important "Run `git push` to sync changes."
17
17
  exit
18
18
  end
19
19
  end
@@ -70,7 +70,7 @@ Capistrano::Configuration.instance.load do
70
70
  f.write File.read(File.expand_path(File.join File.dirname(__FILE__), '..', 'templates', 'multistage.rb'))
71
71
  end
72
72
 
73
- puts "#{name} configurations has been written to #{file}, please open and edit it."
73
+ logger.info "#{name} configurations has been written to #{file}, please open and edit it."
74
74
  end
75
75
  end
76
76
  end
@@ -38,7 +38,7 @@ Capistrano::Configuration.instance(:must_exist).load do
38
38
  #{try_sudo} bzip2 -9 '#{latest_db_dump}'
39
39
  CMD
40
40
  rescue Capistrano::CommandError
41
- puts "WARNING: The database doesn't exist."
41
+ logger.info "WARNING: The database doesn't exist."
42
42
  end
43
43
  else
44
44
  abort "MySQL credentials are empty"
@@ -61,7 +61,7 @@ Capistrano::Configuration.instance(:must_exist).load do
61
61
  '#{mysql_db_name}'
62
62
  CMD
63
63
  rescue Capistrano::CommandError
64
- puts "WARNING: The database doesn't exist or you do not have permissions to drop it, trying to drop all tables inside of it."
64
+ logger.info "WARNING: The database doesn't exist or you do not have permissions to drop it, trying to drop all tables inside of it."
65
65
  begin
66
66
  run <<-CMD
67
67
  mysqldump \
@@ -77,7 +77,7 @@ Capistrano::Configuration.instance(:must_exist).load do
77
77
  '#{mysql_db_name}'
78
78
  CMD
79
79
  rescue Capistrano::CommandError
80
- puts "WARNING: The database doesn't exist or you do not have permissions to drop it."
80
+ logger.info "WARNING: The database doesn't exist or you do not have permissions to drop it."
81
81
  end
82
82
  end
83
83
  end
@@ -126,7 +126,7 @@ Capistrano::Configuration.instance(:must_exist).load do
126
126
 
127
127
  find_and_execute_task("mysql:write_credentials")
128
128
  rescue Capistrano::CommandError
129
- puts "WARNING: The user #{application} already exists or you do not have permissions to create it."
129
+ logger.info "WARNING: The user #{application} already exists or you do not have permissions to create it."
130
130
  find_and_execute_task("mysql:print_credentials")
131
131
  end
132
132
  end
@@ -147,7 +147,7 @@ Capistrano::Configuration.instance(:must_exist).load do
147
147
  create '#{mysql_db_name}'
148
148
  CMD
149
149
  rescue Capistrano::CommandError
150
- puts "WARNING: The database already exists or you do not have permissions to create it."
150
+ logger.info "WARNING: The database already exists or you do not have permissions to create it."
151
151
  end
152
152
  end
153
153
  end
@@ -161,7 +161,7 @@ Capistrano::Configuration.instance(:must_exist).load do
161
161
  argv_file_index = ARGV.index("mysql:import_db_dump") + 1
162
162
 
163
163
  unless ARGV.size >= (argv_file_index + 1) and File.exists?(ARGV[argv_file_index])
164
- puts "ERROR: please run 'cap mysql:import_db_dump <sql dump>'"
164
+ logger.important "ERROR: please run 'cap mysql:import_db_dump <sql dump>'"
165
165
  exit 1
166
166
  else
167
167
  # The database dump name
@@ -242,7 +242,7 @@ Capistrano::Configuration.instance(:must_exist).load do
242
242
  rm -f /tmp/#{File.basename latest_db_dump}
243
243
  CMD
244
244
 
245
- puts "Mysql dump has been downloaded to #{export_filename}"
245
+ logger.info "Mysql dump has been downloaded to #{export_filename}"
246
246
  exit 0
247
247
  end
248
248
  end
@@ -250,15 +250,16 @@ Capistrano::Configuration.instance(:must_exist).load do
250
250
  ['credentials', 'root_credentials'].each do |var|
251
251
  desc "print database #{var.gsub(/_/, ' ')}"
252
252
  task "print_#{var}" do
253
- puts mysql_credentials_formatted(fetch "mysql_#{var}".to_sym)
253
+ logger.trace credentials_formatted(fetch "mysql_#{var}".to_sym)
254
254
  end
255
255
 
256
256
  desc "[internal] write database #{var.gsub(/_/, ' ')}"
257
257
  task "write_#{var}" do
258
258
  unless exists?("mysql_#{var}_file".to_sym) and remote_file_exists?(fetch "mysql_#{var}_file".to_sym)
259
259
  mysql_credentials_file = fetch "mysql_#{var}_file".to_sym
260
- random_file = random_tmp_file(mysql_credentials_formatted(fetch "mysql_#{var}".to_sym))
261
- put mysql_credentials_formatted(fetch "mysql_#{var}".to_sym), random_file
260
+ credentials_formatted_content = credentials_formatted(fetch "mysql_#{var}".to_sym)
261
+ random_file = random_tmp_file(credentials_formatted_content)
262
+ put credentials_formatted_content, random_file
262
263
 
263
264
  begin
264
265
  run <<-CMD
@@ -266,11 +267,11 @@ Capistrano::Configuration.instance(:must_exist).load do
266
267
  #{try_sudo} rm -f #{random_file}
267
268
  CMD
268
269
  rescue Capistrano::CommandError
269
- puts "WARNING: Apparently you do not have permissions to write to #{mysql_credentials_file}."
270
+ logger.info "WARNING: Apparently you do not have permissions to write to #{mysql_credentials_file}."
270
271
  find_and_execute_task("mysql:print_#{var}")
271
272
  end
272
273
  else
273
- puts "WARNING: mysql_#{var}_file is not defined or it already exists on the server."
274
+ logger.info "WARNING: mysql_#{var}_file is not defined or it already exists on the server."
274
275
  find_and_execute_task("mysql:print_#{var}") unless ARGV.include?("mysql:print_#{var}")
275
276
  end
276
277
  end
@@ -303,6 +304,7 @@ Capistrano::Configuration.instance(:must_exist).load do
303
304
 
304
305
  unless mysql_credentials_file_contents.blank?
305
306
  mysql_credentials = {
307
+ adapter: 'mysql',
306
308
  host: mysql_credentials_file_contents.match(mysql_credentials_host_regex).try(:[], mysql_credentials_host_regex_match).try(:chomp),
307
309
  user: mysql_credentials_file_contents.match(mysql_credentials_user_regex).try(:[], mysql_credentials_user_regex_match).try(:chomp),
308
310
  pass: mysql_credentials_file_contents.match(mysql_credentials_pass_regex).try(:[], mysql_credentials_pass_regex_match).try(:chomp),
@@ -334,27 +336,6 @@ Capistrano::Configuration.instance(:must_exist).load do
334
336
  end
335
337
  end
336
338
  end
337
-
338
- desc "Create database.yml in shared path"
339
- task :write_database_yml, :roles => :db, :except => { :no_release => true } do
340
- mysql_credentials = fetch :mysql_credentials
341
-
342
- db_config = <<-EOF
343
- production:
344
- adapter: mysql2
345
- encoding: utf8
346
- reconnect: false
347
- pool: 10
348
- database: #{fetch :mysql_db_name}
349
- username: #{mysql_credentials[:user]}
350
- password: #{mysql_credentials[:pass]}
351
- EOF
352
-
353
- run <<-CMD
354
- mkdir -p #{shared_path}/config
355
- CMD
356
- put db_config, "#{shared_path}/config/database.yml"
357
- end
358
339
  end
359
340
  end
360
341
 
@@ -368,7 +349,4 @@ EOF
368
349
 
369
350
  before "mysql:print_credentials", "mysql:credentials"
370
351
  before "mysql:print_root_credentials", "mysql:root_credentials"
371
-
372
- # Write database.yml to shared path when using rails
373
- after "mysql:write_credentials", "mysql:write_database_yml" if exists?(:capistrano_extensions) and capistrano_extensions.include?(:rails)
374
352
  end
@@ -7,24 +7,38 @@ unless Capistrano::Configuration.respond_to?(:instance)
7
7
  abort "This extension requires Capistrano 2"
8
8
  end
9
9
 
10
- # TODO:
11
- # => Replace the vars with a call to fetch
12
- # => Add the vars to examples and the template so it is visible
10
+ RAILS_DB_ADAPTER_MAPPING = {
11
+ 'mysql' => 'mysql2'
12
+ }
13
13
 
14
14
  Capistrano::Configuration.instance(:must_exist).load do
15
15
 
16
16
  namespace :rails do
17
- desc "Install configuration files"
18
- task :install_configuration_files, :roles => :app do
19
- if exists?(:configuration_files)
20
- fetch(:configuration_files).each { |configuration_file| link_config_file(configuration_file) }
17
+ desc "[internal] Create database.yml in shared path"
18
+ task :write_database_yml, :roles => :app, :except => { :no_release => true } do
19
+ database_yml_config_path = "#{fetch :shared_path}/config/config_database.yml"
20
+ unless remote_file_exists?(database_yml_config_path)
21
+ on_rollback { run "rm -f #{database_yml_config_path}" }
22
+ mysql_credentials = fetch :mysql_credentials
23
+
24
+ # Get the db_config
25
+ db_config = rails_database_yml(mysql_credentials, RAILS_DB_ADAPTER_MAPPING)
26
+
27
+ # Generate a remote file name
28
+ random_file = random_tmp_file(db_config)
29
+ put db_config, random_file
30
+
31
+ begin
32
+ run <<-CMD
33
+ #{try_sudo} cp #{random_file} #{database_yml_config_path}; \
34
+ #{try_sudo} rm -f #{random_file}
35
+ CMD
36
+ rescue Capistrano::CommandError
37
+ logger.info "WARNING: Apparently you do not have permissions to write to #{mysql_credentials_file}."
38
+ find_and_execute_task("mysql:print_#{var}")
39
+ end
21
40
  end
22
41
  end
23
-
24
- desc "Install rvm config file"
25
- task :install_rvmrc_file, :roles => :app do
26
- link_file(File.join(fetch(:shared_path), 'rvmrc'), File.join(fetch(:release_path), '.rvmrc'))
27
- end
28
42
  end
29
43
 
30
44
  namespace :deploy do
@@ -33,8 +47,11 @@ Capistrano::Configuration.instance(:must_exist).load do
33
47
  end
34
48
  end
35
49
 
36
- after "deploy:finalize_update", "rails:install_configuration_files"
37
- after "rails:install_configuration_files", "rails:install_rvmrc_file"
50
+ # Database.yml file
51
+ after "files:config_files", "rails:write_database_yml"
52
+ before "rails:write_database_yml", "mysql:credentials"
53
+
54
+ # Restart the server
38
55
  after "deploy:restart", "deploy:fix_permissions"
39
56
 
40
57
  # Capistrano is broken
@@ -96,14 +96,18 @@ Capistrano::Configuration.instance(:must_exist).load do
96
96
  #{try_sudo} rm -f #{random_file}
97
97
  CMD
98
98
 
99
- puts "This site uses http basic auth, the credentials are:"
100
- puts web_server_auth_file_unencrypted_contents
99
+ logger.info "This site uses http basic auth, the credentials are:"
100
+ web_server_auth_file_unencrypted_contents.split("\n").each do |m|
101
+ logger.trace "username: #{m.split(':').first.chomp} password: #{m.split(':').last.chomp}"
102
+ end
101
103
  end
102
104
  end
103
105
 
104
106
  desc "print authentification file"
105
107
  task :print_http_auth do
106
- puts read("#{fetch :deploy_to}/.http_basic_auth")
108
+ read("#{fetch :deploy_to}/.http_basic_auth").split("\n").each do |m|
109
+ logger.trace "username: #{m.split(':').first.chomp} password: #{m.split(':').last.chomp}"
110
+ end
107
111
  end
108
112
 
109
113
  desc "[internal] Write web configuration file"
@@ -24,6 +24,7 @@ set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
24
24
  set :logs_path, -> { "#{fetch :deploy_to}/logs" }
25
25
  set :public_path, -> { "#{fetch :current_path}/public" }
26
26
  set :backup_path, -> { "#{fetch :deploy_to}/backups" }
27
+ set :rails_env, "development"
27
28
 
28
29
  # How should we deploy?
29
30
  # Valid options:
@@ -3,7 +3,7 @@ module Capistrano
3
3
  module Version #:nodoc:
4
4
  MAJOR = 1
5
5
  MINOR = 11
6
- TINY = 0
6
+ TINY = 1
7
7
 
8
8
  ARRAY = [MAJOR, MINOR, TINY]
9
9
  STRING = ARRAY.join(".")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-exts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.11.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
16
- requirement: &2161861100 !ruby/object:Gem::Requirement
16
+ requirement: &2161329300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: 2.8.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2161861100
24
+ version_requirements: *2161329300
25
+ - !ruby/object:Gem::Dependency
26
+ name: capistrano_colors
27
+ requirement: &2161320280 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.5.5
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2161320280
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: i18n
27
- requirement: &2161860560 !ruby/object:Gem::Requirement
38
+ requirement: &2161318720 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ~>
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 0.6.0
33
44
  type: :runtime
34
45
  prerelease: false
35
- version_requirements: *2161860560
46
+ version_requirements: *2161318720
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: activesupport
38
- requirement: &2161860100 !ruby/object:Gem::Requirement
49
+ requirement: &2161317140 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 3.1.0
44
55
  type: :runtime
45
56
  prerelease: false
46
- version_requirements: *2161860100
57
+ version_requirements: *2161317140
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: guard
49
- requirement: &2161859640 !ruby/object:Gem::Requirement
60
+ requirement: &2161316040 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ~>
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: 0.6.2
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *2161859640
68
+ version_requirements: *2161316040
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: guard-bundler
60
- requirement: &2161859140 !ruby/object:Gem::Requirement
71
+ requirement: &2161315140 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ~>
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: 0.1.3
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *2161859140
79
+ version_requirements: *2161315140
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: guard-rspec
71
- requirement: &2161858660 !ruby/object:Gem::Requirement
82
+ requirement: &2161314480 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ~>
@@ -76,10 +87,10 @@ dependencies:
76
87
  version: 0.4.3
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *2161858660
90
+ version_requirements: *2161314480
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: rspec
82
- requirement: &2161857180 !ruby/object:Gem::Requirement
93
+ requirement: &2161312120 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ~>
@@ -87,7 +98,7 @@ dependencies:
87
98
  version: 2.6.0
88
99
  type: :development
89
100
  prerelease: false
90
- version_requirements: *2161857180
101
+ version_requirements: *2161312120
91
102
  description: ! 'Capistrano exts is a set of helper tasks to help with the initial
92
103
  server
93
104