chicken_soup 0.3.0 → 0.4.0
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/chicken_soup.gemspec +2 -2
- data/lib/chicken_soup/capabilities/apache/apache-tasks.rb +4 -4
- data/lib/chicken_soup/capabilities/bundler/bundler-tasks.rb +3 -3
- data/lib/chicken_soup/capabilities/mysql/mysql-tasks.rb +2 -2
- data/lib/chicken_soup/capabilities/nginx/nginx-tasks.rb +47 -20
- data/lib/chicken_soup/capabilities/passenger/passenger-tasks.rb +3 -3
- data/lib/chicken_soup/capabilities/shared/db-tasks.rb +4 -4
- data/lib/chicken_soup/capabilities/shared/web_server-tasks.rb +8 -8
- data/lib/chicken_soup/capabilities/unix/unix-checks.rb +3 -3
- data/lib/chicken_soup/capabilities/unix/unix-defaults.rb +6 -6
- data/lib/chicken_soup/capabilities/unix/unix-tasks.rb +5 -4
- data/lib/chicken_soup/version.rb +1 -1
- metadata +54 -58
data/chicken_soup.gemspec
CHANGED
@@ -15,8 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.email = 'support@thekompanee.com'
|
16
16
|
s.homepage = 'http://github.com/jfelchner/chicken_soup'
|
17
17
|
|
18
|
-
s.summary = "
|
19
|
-
s.description = %q[
|
18
|
+
s.summary = "...for the Deployment Soul."
|
19
|
+
s.description = %q[Why do you keep typing all that crap into your Capistrano recipes? Are you too cool for standards? Well, ARE YA!?]
|
20
20
|
|
21
21
|
s.rdoc_options = ["--charset = UTF-8"]
|
22
22
|
s.extra_rdoc_files = %w[README.md LICENSE]
|
@@ -6,7 +6,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
6
6
|
|
7
7
|
namespace :website do
|
8
8
|
desc "Creates the site configuration for the files."
|
9
|
-
task :create do
|
9
|
+
task :create, :roles => :web do
|
10
10
|
abort "Sorry, auto-installing sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
11
11
|
|
12
12
|
virtual_host_config = <<-VHOST
|
@@ -59,7 +59,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
desc "Completely removes the site configuration from the server (but leaves the files.)"
|
62
|
-
task :remove do
|
62
|
+
task :remove, :roles => :web do
|
63
63
|
abort "Sorry, auto-removing sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
64
64
|
|
65
65
|
run "#{sudo} rm /etc/apache2/sites-available/#{deploy_site_name}"
|
@@ -67,7 +67,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
desc "Enable Site"
|
70
|
-
task :enable do
|
70
|
+
task :enable, :roles => :web do
|
71
71
|
abort "Sorry, auto-enabling sites is not supported on your version of Apache." unless exists?(:apache_enable_script)
|
72
72
|
|
73
73
|
run "#{sudo} #{apache_enable_script} #{deploy_site_name}"
|
@@ -75,7 +75,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
desc "Disable Site"
|
78
|
-
task :disable do
|
78
|
+
task :disable, :roles => :web do
|
79
79
|
abort "Sorry, auto-disabling sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
80
80
|
|
81
81
|
run "#{sudo} #{apache_disable_script} #{deploy_site_name}"
|
@@ -8,12 +8,12 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
8
8
|
|
9
9
|
namespace :gems do
|
10
10
|
desc "Install Bundled Gems"
|
11
|
-
task :install do
|
11
|
+
task :install, :roles => :app do
|
12
12
|
run "cd #{latest_release} && bundle install --gemfile #{latest_release}/Gemfile --path #{shared_path}/bundle --deployment --quiet --without development test"
|
13
13
|
end
|
14
14
|
|
15
15
|
desc "Update Bundled Gems"
|
16
|
-
task :update do
|
16
|
+
task :update, :roles => :app do
|
17
17
|
abort "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
18
18
|
|
19
19
|
run "cd #{latest_release} && bundle update"
|
@@ -22,7 +22,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
22
22
|
|
23
23
|
namespace :bundler do
|
24
24
|
desc "Install Bundler"
|
25
|
-
task :install do
|
25
|
+
task :install, :roles => :app do
|
26
26
|
bundler_install_command = "gem install bundler --version #{gem_packager_version} --no-ri --no-rdoc && gem cleanup bundler"
|
27
27
|
|
28
28
|
if fetch(:capabilities).include? :rvm
|
@@ -15,7 +15,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
15
15
|
variable.
|
16
16
|
* The DB user will be granted all privileges on the DB.
|
17
17
|
DESC
|
18
|
-
task :create do
|
18
|
+
task :create, :roles => :db do
|
19
19
|
create_script = <<-CREATESCRIPT
|
20
20
|
create database #{application_underscored} character set utf8;
|
21
21
|
create user '#{application_underscored}'@'localhost' identified by '#{db_app_password}';
|
@@ -34,7 +34,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
34
34
|
* The script is executed as `root` and as such, the user will be prompted
|
35
35
|
for `root`'s password.
|
36
36
|
DESC
|
37
|
-
task :drop do
|
37
|
+
task :drop, :roles => :db do
|
38
38
|
drop_script = <<-DROPSCRIPT
|
39
39
|
drop user #{application_underscored}@localhost;
|
40
40
|
drop database #{application_underscored};
|
@@ -6,16 +6,24 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
6
6
|
|
7
7
|
namespace :website do
|
8
8
|
desc "Creates the site configuration for the files."
|
9
|
-
task :create do
|
9
|
+
task :create, :roles => :web do
|
10
10
|
abort "Sorry, auto-installing sites is not supported on your installation of Nginx." unless exists?(:nginx_disable_script)
|
11
11
|
|
12
|
-
|
12
|
+
passenger_friendly_error_pages = rails_env == :production ? "off" : "on"
|
13
13
|
|
14
14
|
virtual_host_config = <<-VHOST
|
15
15
|
server {
|
16
|
+
###
|
17
|
+
# Server Details
|
18
|
+
#
|
16
19
|
listen #{web_server_ip}:443;
|
17
|
-
server_name
|
20
|
+
server_name .#{deploy_site_name};
|
18
21
|
|
22
|
+
root #{deploy_to}/current/public;
|
23
|
+
|
24
|
+
###
|
25
|
+
# Passenger and Rails
|
26
|
+
#
|
19
27
|
passenger_enabled on;
|
20
28
|
passenger_friendly_error_pages #{passenger_friendly_error_pages};
|
21
29
|
passenger_min_instances 4;
|
@@ -23,39 +31,58 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
23
31
|
rails_env #{rails_env};
|
24
32
|
rack_env #{rails_env};
|
25
33
|
|
34
|
+
###
|
35
|
+
# Performance and Security
|
36
|
+
#
|
37
|
+
client_max_body_size 3M;
|
38
|
+
|
39
|
+
location ~ /\. { deny all; } # This will deny access to any hidden file (beginning with a period)
|
40
|
+
|
41
|
+
###
|
42
|
+
# SSL
|
43
|
+
#
|
26
44
|
ssl on;
|
27
45
|
ssl_certificate /etc/nginx/ssl/#{domain}.crt;
|
28
46
|
ssl_certificate_key /etc/nginx/ssl/#{domain}.key;
|
29
47
|
|
30
48
|
ssl_session_timeout 5m;
|
31
49
|
|
50
|
+
ssl_protocols SSLv3 TLSv1;
|
32
51
|
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
|
33
52
|
ssl_prefer_server_ciphers on;
|
34
53
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
54
|
+
###
|
55
|
+
# Logs
|
56
|
+
#
|
39
57
|
access_log /var/log/nginx/#{application}.access.log main;
|
40
58
|
error_log /var/log/nginx/#{application}.error.log warn;
|
41
59
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
60
|
+
###
|
61
|
+
# Handle Errors
|
62
|
+
#
|
63
|
+
recursive_error_pages on;
|
46
64
|
|
47
|
-
|
48
|
-
|
65
|
+
error_page 500 502 504 /500.html;
|
66
|
+
error_page 400 /404.html;
|
67
|
+
error_page 422 /422.html;
|
68
|
+
error_page 503 @503;
|
69
|
+
|
70
|
+
if (-f $document_root/system/maintenance.html) {
|
71
|
+
return 503;
|
72
|
+
}
|
73
|
+
|
74
|
+
location @503 {
|
75
|
+
error_page 405 = $document_root/system/maintenance.html;
|
76
|
+
|
77
|
+
rewrite ^(.*)$ /system/maintenance.html break;
|
49
78
|
}
|
50
79
|
}
|
51
80
|
|
52
81
|
server {
|
53
82
|
listen #{web_server_ip}:80;
|
54
|
-
server_name
|
83
|
+
server_name .#{deploy_site_name};
|
55
84
|
|
56
|
-
|
57
|
-
rewrite ^ https://$http_host$request_uri? permanent
|
58
|
-
}
|
85
|
+
rewrite ^ https://$http_host$request_uri? permanent
|
59
86
|
}
|
60
87
|
VHOST
|
61
88
|
|
@@ -65,7 +92,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
65
92
|
end
|
66
93
|
|
67
94
|
desc "Completely removes the site configuration from the server (but leaves the files.)"
|
68
|
-
task :remove do
|
95
|
+
task :remove, :roles => :web do
|
69
96
|
abort "Sorry, auto-removing sites is not supported on your installation of Nginx." unless exists?(:nginx_disable_script)
|
70
97
|
|
71
98
|
run "#{sudo} rm /etc/nginx/sites-available/#{deploy_site_name}"
|
@@ -73,12 +100,12 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
73
100
|
end
|
74
101
|
|
75
102
|
desc "Enable Site"
|
76
|
-
task :enable do
|
103
|
+
task :enable, :roles => :web do
|
77
104
|
abort "Sorry, auto-enabling sites is not supported on your installation of Nginx." unless exists?(:nginx_enable_script)
|
78
105
|
end
|
79
106
|
|
80
107
|
desc "Disable Site"
|
81
|
-
task :disable do
|
108
|
+
task :disable, :roles => :web do
|
82
109
|
abort "Sorry, auto-disabling sites is not supported on your installation of Nginx." unless exists?(:nginx_disable_script)
|
83
110
|
end
|
84
111
|
end
|
@@ -8,14 +8,14 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
8
8
|
|
9
9
|
This task does nothing.
|
10
10
|
DESC
|
11
|
-
task :start do ; end
|
11
|
+
task :start, :roles => :app do ; end
|
12
12
|
|
13
13
|
desc <<-DESC
|
14
14
|
There is no way to stop the application via Passenger.
|
15
15
|
|
16
16
|
This task does nothing.
|
17
17
|
DESC
|
18
|
-
task :stop do ; end
|
18
|
+
task :stop, :roles => :app do ; end
|
19
19
|
|
20
20
|
desc <<-DESC
|
21
21
|
Starts/Restarts the application.
|
@@ -24,7 +24,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
24
24
|
directory called `restart.txt`. If the Last Access time for `restart.txt`
|
25
25
|
changes, Passenger restarts the app.
|
26
26
|
DESC
|
27
|
-
task :restart, :
|
27
|
+
task :restart, :roles => :app do
|
28
28
|
run "touch #{File.join( current_path, 'tmp', 'restart.txt' )}"
|
29
29
|
end
|
30
30
|
end
|
@@ -22,12 +22,12 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
22
22
|
* After export, each file is zipped up using a bzip2 compression format.
|
23
23
|
DESC
|
24
24
|
namespace :backup do
|
25
|
-
task :default do
|
25
|
+
task :default, :roles => :db, :only => {:primary => true} do
|
26
26
|
run "cd #{current_path} && BACKUP_DIRECTORY=#{shared_path}/db_backups #{rake} db:backup"
|
27
27
|
end
|
28
28
|
|
29
29
|
desc "[internal] Used to check to see if the db:backup task exists on the server."
|
30
|
-
task :check do
|
30
|
+
task :check, :roles => :db do
|
31
31
|
backup_task_exists = capture("cd #{current_path} && #{rake} -T | grep db:backup | wc -l").chomp
|
32
32
|
abort("There must be a task named db:backup in order to deploy. If you do not want to backup your DB during deployments, set the skip_backup_before_migration variable to true in your deploy.rb.") if backup_task_exists == '0'
|
33
33
|
|
@@ -45,7 +45,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
45
45
|
to run this in production, you'll need to log into the server and
|
46
46
|
run the rake task manually or use Capistrano's `console` task.
|
47
47
|
DESC
|
48
|
-
task :reset_and_seed do
|
48
|
+
task :reset_and_seed, :roles => :db do
|
49
49
|
abort "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
50
50
|
db.backup
|
51
51
|
run "cd #{current_path} && #{rake} db:reset_and_seed"
|
@@ -62,7 +62,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
62
62
|
to run this in production, you'll need to log into the server and
|
63
63
|
run the rake task manually or use Capistrano's `console` task.
|
64
64
|
DESC
|
65
|
-
task :seed do
|
65
|
+
task :seed, :roles => :db do
|
66
66
|
abort "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
67
67
|
db.backup
|
68
68
|
run "cd #{current_path} && #{rake} db:seed"
|
@@ -20,14 +20,14 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
20
20
|
desc <<-DESC
|
21
21
|
Enables the website's application by removing the maintenance page.
|
22
22
|
DESC
|
23
|
-
task :enable do
|
23
|
+
task :enable, :roles => :web do
|
24
24
|
website.maintenance_mode.disable
|
25
25
|
end
|
26
26
|
|
27
27
|
desc <<-DESC
|
28
28
|
Disables the website's application by installing the maintenance page.
|
29
29
|
DESC
|
30
|
-
task :disable do
|
30
|
+
task :disable, :roles => :web do
|
31
31
|
website.maintenance_mode.enable
|
32
32
|
end
|
33
33
|
end
|
@@ -41,7 +41,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
41
41
|
web servers are configured correctly) will make your application \
|
42
42
|
web-accessible again.
|
43
43
|
DESC
|
44
|
-
task :disable, :
|
44
|
+
task :disable, :roles => :web do
|
45
45
|
run "rm #{shared_path}/system/maintenance.html"
|
46
46
|
end
|
47
47
|
|
@@ -61,7 +61,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
61
61
|
|
62
62
|
Further customization will require that you write your own task.
|
63
63
|
DESC
|
64
|
-
task :enable, :
|
64
|
+
task :enable, :roles => :web do
|
65
65
|
on_rollback { rm "#{shared_path}/system/maintenance.html" }
|
66
66
|
|
67
67
|
require 'erb'
|
@@ -77,22 +77,22 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
77
77
|
|
78
78
|
namespace :web_server do
|
79
79
|
desc "Stop the web server"
|
80
|
-
task :stop do
|
80
|
+
task :stop, :roles => :web do
|
81
81
|
run "#{sudo} #{web_server_control_script} stop"
|
82
82
|
end
|
83
83
|
|
84
84
|
desc "Start the web server"
|
85
|
-
task :start do
|
85
|
+
task :start, :roles => :web do
|
86
86
|
run "#{sudo} #{web_server_control_script} start"
|
87
87
|
end
|
88
88
|
|
89
89
|
desc "Restart the web server"
|
90
|
-
task :restart do
|
90
|
+
task :restart, :roles => :web do
|
91
91
|
run "#{sudo} #{web_server_control_script} restart"
|
92
92
|
end
|
93
93
|
|
94
94
|
desc "Reloads the web server configuration"
|
95
|
-
task :reload do
|
95
|
+
task :reload, :roles => :web do
|
96
96
|
run "#{sudo} #{web_server_control_script} reload"
|
97
97
|
end
|
98
98
|
end
|
@@ -21,9 +21,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
21
21
|
:app_server_ip,
|
22
22
|
:web_server_ip,
|
23
23
|
:db_server_ip,
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
24
|
+
:web_servers,
|
25
|
+
:app_servers,
|
26
|
+
:db_servers
|
27
27
|
]
|
28
28
|
|
29
29
|
verify_variables(required_variables)
|
@@ -23,9 +23,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
23
23
|
|
24
24
|
_cset :default_server_name, domain
|
25
25
|
|
26
|
-
_cset(:
|
27
|
-
_cset(:
|
28
|
-
_cset(:
|
26
|
+
_cset(:app_servers) { default_server_name }
|
27
|
+
_cset(:web_servers) { default_server_name }
|
28
|
+
_cset(:db_servers) { default_server_name }
|
29
29
|
|
30
30
|
# Evidently roles can't be assigned in a namespace :-/
|
31
31
|
set_unix_server_roles
|
@@ -35,8 +35,8 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
35
35
|
|
36
36
|
desc "[internal] This task is only here because `role` cannot be used within a `namespace`"
|
37
37
|
task :set_unix_server_roles do
|
38
|
-
role :web,
|
39
|
-
role :app,
|
40
|
-
role :db,
|
38
|
+
role :web, web_servers
|
39
|
+
role :app, app_servers
|
40
|
+
role :db, db_servers, :primary => true
|
41
41
|
end
|
42
42
|
end
|
@@ -30,7 +30,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
30
30
|
|
31
31
|
Note: This task will also work for setting up shared directories for user uploads, etc.
|
32
32
|
DESC
|
33
|
-
task :setup do
|
33
|
+
task :setup, :roles => :app do
|
34
34
|
global_shared_elements.each do |shared_file|
|
35
35
|
base_dir_of_shared_file = shared_file.match(%r{/?((?:.*)/)})[1]
|
36
36
|
run "mkdir -p '#{shared_path}/#{base_dir_of_shared_file}'"
|
@@ -38,12 +38,13 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
38
38
|
remote_shared_file = "#{shared_path}/#{shared_file}"
|
39
39
|
local_shared_file = "#{Dir.pwd}/#{shared_file}"
|
40
40
|
local_environment_specific_file = "#{local_shared_file}.#{rails_env}"
|
41
|
+
permissions = File.directory? local_shared_file ? "755" : "600"
|
41
42
|
|
42
43
|
if File.exists?(local_environment_specific_file)
|
43
|
-
top.upload(local_environment_specific_file, remote_shared_file, :mode =>
|
44
|
+
top.upload(local_environment_specific_file, remote_shared_file, :mode => permissions)
|
44
45
|
elsif !remote_file_exists?(remote_shared_file)
|
45
46
|
if File.exists?(local_shared_file)
|
46
|
-
top.upload(local_shared_file, remote_shared_file, :mode =>
|
47
|
+
top.upload(local_shared_file, remote_shared_file, :mode => permissions)
|
47
48
|
else
|
48
49
|
abort "I'm sorry Dave, but I couldn't find a local file or directory at '#{local_shared_file}' or '#{local_environment_specific_file}'"
|
49
50
|
end
|
@@ -56,7 +57,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
56
57
|
|
57
58
|
By default, these live in the shared directory that Capistrano sets up.
|
58
59
|
DESC
|
59
|
-
task :symlink do
|
60
|
+
task :symlink, :roles => :app do
|
60
61
|
global_shared_elements.each do |shared_file|
|
61
62
|
run "ln -nfs #{shared_path}/#{shared_file} #{latest_release}/#{shared_file}"
|
62
63
|
end
|
data/lib/chicken_soup/version.rb
CHANGED
metadata
CHANGED
@@ -1,84 +1,82 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: chicken_soup
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.3.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- thekompanee
|
9
9
|
- jfelchner
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
date: 2011-06-15 00:00:00 -05:00
|
13
|
+
date: 2011-07-18 00:00:00.000000000 -05:00
|
15
14
|
default_executable:
|
16
|
-
dependencies:
|
17
|
-
- !ruby/object:Gem::Dependency
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
18
17
|
name: capistrano
|
19
|
-
|
20
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirement: &2153155400 !ruby/object:Gem::Requirement
|
21
19
|
none: false
|
22
|
-
requirements:
|
20
|
+
requirements:
|
23
21
|
- - ~>
|
24
|
-
- !ruby/object:Gem::Version
|
22
|
+
- !ruby/object:Gem::Version
|
25
23
|
version: 2.6.0
|
26
24
|
type: :runtime
|
27
|
-
version_requirements: *id001
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: mail
|
30
25
|
prerelease: false
|
31
|
-
|
26
|
+
version_requirements: *2153155400
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mail
|
29
|
+
requirement: &2153154900 !ruby/object:Gem::Requirement
|
32
30
|
none: false
|
33
|
-
requirements:
|
31
|
+
requirements:
|
34
32
|
- - ~>
|
35
|
-
- !ruby/object:Gem::Version
|
33
|
+
- !ruby/object:Gem::Version
|
36
34
|
version: 2.2.15
|
37
35
|
type: :runtime
|
38
|
-
version_requirements: *id002
|
39
|
-
- !ruby/object:Gem::Dependency
|
40
|
-
name: bundler
|
41
36
|
prerelease: false
|
42
|
-
|
37
|
+
version_requirements: *2153154900
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: bundler
|
40
|
+
requirement: &2172657540 !ruby/object:Gem::Requirement
|
43
41
|
none: false
|
44
|
-
requirements:
|
42
|
+
requirements:
|
45
43
|
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
44
|
+
- !ruby/object:Gem::Version
|
47
45
|
version: 1.0.10
|
48
46
|
type: :development
|
49
|
-
version_requirements: *id003
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rspec
|
52
47
|
prerelease: false
|
53
|
-
|
48
|
+
version_requirements: *2172657540
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rspec
|
51
|
+
requirement: &2172657080 !ruby/object:Gem::Requirement
|
54
52
|
none: false
|
55
|
-
requirements:
|
53
|
+
requirements:
|
56
54
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
55
|
+
- !ruby/object:Gem::Version
|
58
56
|
version: 2.6.0
|
59
57
|
type: :development
|
60
|
-
version_requirements: *id004
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: yard
|
63
58
|
prerelease: false
|
64
|
-
|
59
|
+
version_requirements: *2172657080
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: yard
|
62
|
+
requirement: &2172656620 !ruby/object:Gem::Requirement
|
65
63
|
none: false
|
66
|
-
requirements:
|
64
|
+
requirements:
|
67
65
|
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
66
|
+
- !ruby/object:Gem::Version
|
69
67
|
version: 0.7.1
|
70
68
|
type: :development
|
71
|
-
|
72
|
-
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *2172656620
|
71
|
+
description: Why do you keep typing all that crap into your Capistrano recipes? Are
|
72
|
+
you too cool for standards? Well, ARE YA!?
|
73
73
|
email: support@thekompanee.com
|
74
74
|
executables: []
|
75
|
-
|
76
75
|
extensions: []
|
77
|
-
|
78
|
-
extra_rdoc_files:
|
76
|
+
extra_rdoc_files:
|
79
77
|
- README.md
|
80
78
|
- LICENSE
|
81
|
-
files:
|
79
|
+
files:
|
82
80
|
- .gitignore
|
83
81
|
- .rspec
|
84
82
|
- .rvmrc
|
@@ -145,30 +143,28 @@ files:
|
|
145
143
|
has_rdoc: true
|
146
144
|
homepage: http://github.com/jfelchner/chicken_soup
|
147
145
|
licenses: []
|
148
|
-
|
149
146
|
post_install_message:
|
150
|
-
rdoc_options:
|
147
|
+
rdoc_options:
|
151
148
|
- --charset = UTF-8
|
152
|
-
require_paths:
|
149
|
+
require_paths:
|
153
150
|
- lib
|
154
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
155
152
|
none: false
|
156
|
-
requirements:
|
157
|
-
- -
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version:
|
160
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ! '>='
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
157
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
158
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version:
|
159
|
+
requirements:
|
160
|
+
- - ! '>='
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
166
163
|
requirements: []
|
167
|
-
|
168
164
|
rubyforge_project: chicken_soup
|
169
165
|
rubygems_version: 1.6.2
|
170
166
|
signing_key:
|
171
167
|
specification_version: 3
|
172
|
-
summary:
|
173
|
-
test_files:
|
168
|
+
summary: ! '...for the Deployment Soul.'
|
169
|
+
test_files:
|
174
170
|
- spec/support/focused.rb
|