rubber 2.10.2 → 2.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +25 -0
- data/lib/rubber/cloud/digital_ocean.rb +3 -2
- data/lib/rubber/recipes/rubber.rb +1 -1
- data/lib/rubber/recipes/rubber/volumes.rb +7 -0
- data/lib/rubber/version.rb +1 -1
- data/rubber.gemspec +1 -1
- data/templates/base/config/deploy.rb +1 -1
- data/templates/graylog/config/rubber/role/graylog_server/graylog2.conf +1 -1
- data/templates/passenger/config/rubber/deploy-passenger.rb +5 -8
- data/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +1 -1
- data/templates/passenger/config/rubber/role/passenger/passenger.conf +27 -30
- data/templates/passenger/config/rubber/rubber-passenger.yml +2 -5
- data/templates/passenger_nginx/config/rubber/role/passenger_nginx/nginx.conf +4 -3
- data/templates/passenger_nginx/config/rubber/rubber-passenger_nginx.yml +2 -2
- data/templates/postgresql/config/rubber/role/postgresql/postgresql.conf +1 -1
- metadata +37 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb719c42daba4da22b9c9566bb445e3077b198b0
|
4
|
+
data.tar.gz: 7fb644c6a3d571ee6019ac55fc2afae3aa0766f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfcc3023241d63d494a98f1e441fc048e98800db6c2c390ee8c700c2572d551167a72de4e9e138dbbff121e0deaf6a164ac0c464a8900bfe5bd8d714c6bc6bdf
|
7
|
+
data.tar.gz: e753355f2ea865547888732ccc864e0480a294a9f4094c126f768b4dcf17e0ece7f0350ce18bba47f735192ce370f452db2be938c5d5d2c6c7410075af244983
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,28 @@
|
|
1
|
+
2.11.0 (08/07/2014)
|
2
|
+
|
3
|
+
New Features:
|
4
|
+
============
|
5
|
+
|
6
|
+
[passenger] Upgraded to Passenger 4. <09c7e64>
|
7
|
+
|
8
|
+
Improvements:
|
9
|
+
============
|
10
|
+
|
11
|
+
[core] Print an error if trying to mount a volume that is mounted under a different device in /etc/fstab. <855fc4c>
|
12
|
+
[passenger_nginx] Lock the Passenger version number down for more reliable provisioning. <1ca742a>
|
13
|
+
[passenger_nginx] Cleaned up the stock config a bit. <46b5abb, 31de467, e7bdc80>
|
14
|
+
[postgresql] Reduced shared_buffers size in PostgreSQL so it'll work out of the box on a 512 MB Digital Ocean droplet. <e032b3a>
|
15
|
+
|
16
|
+
Bug Fixes:
|
17
|
+
=========
|
18
|
+
|
19
|
+
[base] Update the regions with private networking in Digital Ocean. <0d96318>
|
20
|
+
[base] Make sure we load deploy-* files in lexicographic order. <332b69e>
|
21
|
+
[core] We need to expand the SSH key filename before checking if it exists. <f9db7c4>
|
22
|
+
[core] Fixed a problem with loading Rubber via git in bundler on older releases of RubyGems (e.g., the ones that shipped with Ruby 1.9.3). <869d3d4>
|
23
|
+
[graylog] Fixed bootstrapping graylog by removing bad config. <ea5a9b4>
|
24
|
+
|
25
|
+
|
1
26
|
2.10.2 (07/07/2014)
|
2
27
|
|
3
28
|
Improvements:
|
@@ -29,8 +29,9 @@ module Rubber
|
|
29
29
|
super(env, capistrano)
|
30
30
|
end
|
31
31
|
|
32
|
-
#
|
33
|
-
|
32
|
+
# As of July 2014 Digital Ocean supports private networking in
|
33
|
+
# New York 2 (id 4), Amsterdam 2 (id 5), Singapore 1 (id 6) and London 1 (id 7)
|
34
|
+
REGIONS_WITH_PRIVATE_NETWORKING = [4, 5, 6, 7]
|
34
35
|
|
35
36
|
def create_instance(instance_alias, image_name, image_type, security_groups, availability_zone, region)
|
36
37
|
do_region = compute_provider.regions.find { |r| r.name == region }
|
@@ -105,7 +105,7 @@ namespace :rubber do
|
|
105
105
|
|
106
106
|
# Check that the configuration not only exists, but is also valid.
|
107
107
|
normalized_ssh_keys.each do |key|
|
108
|
-
unless File.exists?(key)
|
108
|
+
unless File.exists?(File.expand_path(key))
|
109
109
|
fatal "Invalid SSH key path '#{key}': File does not exist.\nPlease check your cloud provider's 'key_file' setting for correctness."
|
110
110
|
end
|
111
111
|
end
|
@@ -159,6 +159,13 @@ namespace :rubber do
|
|
159
159
|
#{('yes | mkfs -t ' + vol_spec['filesystem'] + ' ' + '$device') if created}
|
160
160
|
#{("mkdir -p '#{vol_spec['mount']}'") if vol_spec['mount']}
|
161
161
|
#{("mount '#{vol_spec['mount']}'") if vol_spec['mount']}
|
162
|
+
|
163
|
+
elif ! grep -q '#{vol_spec['mount']}' /etc/fstab | grep -q '#{vol_spec['device']}'; then
|
164
|
+
echo 'You already have #{vol_spec['mount']} mounted as a different device in /etc/fstab'
|
165
|
+
echo 'Please choose a different mount point or manually edit /etc/fstab'
|
166
|
+
echo 'and re-run cap rubber:setup_volumes'
|
167
|
+
|
168
|
+
exit 1
|
162
169
|
fi
|
163
170
|
ENDSCRIPT
|
164
171
|
end
|
data/lib/rubber/version.rb
CHANGED
data/rubber.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'rubber/version'
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
|
8
8
|
s.name = "rubber"
|
9
|
-
s.version = Rubber::VERSION
|
9
|
+
s.version = Rubber::VERSION.dup
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
11
|
s.authors = ["Matt Conway", "Kevin Menard"]
|
12
12
|
s.email = ["matt@conwaysplace.com", "nirvdrum@gmail.com"]
|
@@ -71,7 +71,7 @@ namespace :deploy do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
# load in the deploy scripts installed by vulcanize for each rubber module
|
74
|
-
Dir["#{File.dirname(__FILE__)}/rubber/deploy-*.rb"].each do |deploy_file|
|
74
|
+
Dir["#{File.dirname(__FILE__)}/rubber/deploy-*.rb"].sort.each do |deploy_file|
|
75
75
|
load deploy_file
|
76
76
|
end
|
77
77
|
|
@@ -52,7 +52,7 @@ rest_transport_uri = http://<%= rubber_instances[rubber_env.host].internal_ip %>
|
|
52
52
|
|
53
53
|
# Embedded elasticsearch configuration file
|
54
54
|
# pay attention to the working directory of the server, maybe use an absolute path here
|
55
|
-
elasticsearch_config_file = /etc/graylog2-elasticsearch.yml
|
55
|
+
#elasticsearch_config_file = /etc/graylog2-elasticsearch.yml
|
56
56
|
|
57
57
|
elasticsearch_max_docs_per_index = 20000000
|
58
58
|
|
@@ -5,14 +5,11 @@ namespace :rubber do
|
|
5
5
|
|
6
6
|
rubber.allow_optional_tasks(self)
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
if [[ -z $passenger_lib ]]; then
|
14
|
-
echo -en "\n\n\n\n" | passenger-install-apache2-module
|
15
|
-
fi
|
8
|
+
before "rubber:install_packages", "rubber:passenger:setup_apt_sources"
|
9
|
+
task :setup_apt_sources do
|
10
|
+
rubber.sudo_script 'configure_passenger_nginx_repository', <<-ENDSCRIPT
|
11
|
+
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
|
12
|
+
add-apt-repository -y https://oss-binaries.phusionpassenger.com/apt/passenger
|
16
13
|
ENDSCRIPT
|
17
14
|
end
|
18
15
|
|
@@ -2,44 +2,41 @@
|
|
2
2
|
@path = '/etc/apache2/mods-available/passenger.conf'
|
3
3
|
@post = 'cd /etc/apache2/mods-enabled && ln -fs ../mods-available/passenger.conf'
|
4
4
|
%>
|
5
|
-
|
6
|
-
PassengerRoot
|
7
|
-
|
8
|
-
PassengerUseGlobalQueue on
|
5
|
+
<IfModule mod_passenger.c>
|
6
|
+
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
|
7
|
+
PassengerDefaultRuby <%= rubber_env.passenger_ruby %>
|
9
8
|
|
10
|
-
PassengerUserSwitching on
|
11
|
-
PassengerUser <%= rubber_env.app_user %>
|
12
|
-
PassengerGroup <%= rubber_env.app_user %>
|
9
|
+
PassengerUserSwitching on
|
10
|
+
PassengerUser <%= rubber_env.app_user %>
|
11
|
+
PassengerGroup <%= rubber_env.app_user %>
|
13
12
|
|
14
|
-
# max number of rails instances per appserver
|
15
|
-
PassengerMaxPoolSize <%= rubber_env.max_app_connections %>
|
13
|
+
# max number of rails instances per appserver
|
14
|
+
PassengerMaxPoolSize <%= rubber_env.max_app_connections %>
|
16
15
|
|
17
|
-
# min number of rails instances per appserver (by setting this as the max, we make sure we only wait for workers to spawn on the first request)
|
18
|
-
PassengerMinInstances <%= rubber_env.max_app_connections %>
|
16
|
+
# min number of rails instances per appserver (by setting this as the max, we make sure we only wait for workers to spawn on the first request)
|
17
|
+
PassengerMinInstances <%= rubber_env.max_app_connections %>
|
19
18
|
|
20
|
-
# Use PassengerMaxPoolSize for limit as we only have 1 app
|
21
|
-
PassengerMaxInstancesPerApp 0
|
19
|
+
# Use PassengerMaxPoolSize for limit as we only have 1 app
|
20
|
+
PassengerMaxInstancesPerApp 0
|
22
21
|
|
23
|
-
# For performances sake, never shutdown rails instances when idle
|
24
|
-
PassengerPoolIdleTime 0
|
22
|
+
# For performances sake, never shutdown rails instances when idle
|
23
|
+
PassengerPoolIdleTime 0
|
25
24
|
|
26
|
-
# For performances sake, never shutdown a rails instance after N requests
|
27
|
-
PassengerMaxRequests 0
|
25
|
+
# For performances sake, never shutdown a rails instance after N requests
|
26
|
+
PassengerMaxRequests 0
|
28
27
|
|
29
|
-
# Passenger checks stuff like restart.txt on every request when this is 0
|
30
|
-
PassengerStatThrottleRate <%= Rubber.env == 'production' ? '60' : '0' %>
|
28
|
+
# Passenger checks stuff like restart.txt on every request when this is 0
|
29
|
+
PassengerStatThrottleRate <%= Rubber.env == 'production' ? '60' : '0' %>
|
31
30
|
|
32
|
-
# Turning this on breaks mod_rewrite
|
33
|
-
PassengerHighPerformance off
|
31
|
+
# Turning this on breaks mod_rewrite
|
32
|
+
PassengerHighPerformance off
|
34
33
|
|
35
|
-
# Cache framework code per application
|
36
|
-
|
34
|
+
# Cache framework code per application
|
35
|
+
PassengerSpawnMethod smart
|
37
36
|
|
38
|
-
# For performances sake, don't ever unload
|
39
|
-
|
37
|
+
# For performances sake, don't ever unload app spawner
|
38
|
+
PassengerMaxPreloaderIdleTime 0
|
40
39
|
|
41
|
-
#
|
42
|
-
|
43
|
-
|
44
|
-
# Don't show the friendly error pages in production because it could leak information the public shouldn't see.
|
45
|
-
PassengerFriendlyErrorPages <%= Rubber.env == 'production' ? 'off' : 'on' %>
|
40
|
+
# Don't show the friendly error pages in production because it could leak information the public shouldn't see.
|
41
|
+
PassengerFriendlyErrorPages <%= Rubber.env == 'production' ? 'off' : 'on' %>
|
42
|
+
</IfModule>
|
@@ -1,7 +1,5 @@
|
|
1
|
-
passenger_version:
|
2
|
-
passenger_root: "#{`bash -l -c 'find #{ruby_path} -name passenger-#{passenger_version}'`.strip}"
|
1
|
+
passenger_version: '1:4.0.48-1~`lsb_release -sc`1'
|
3
2
|
passenger_ruby: "#{ruby_path}/bin/ruby"
|
4
|
-
passenger_lib: "#{passenger_root}/ext/apache2/mod_passenger.so"
|
5
3
|
passenger_listen_port: 7000
|
6
4
|
passenger_listen_ssl_port: 7001
|
7
5
|
max_app_connections: 20
|
@@ -11,8 +9,7 @@ role_dependencies:
|
|
11
9
|
|
12
10
|
roles:
|
13
11
|
passenger:
|
14
|
-
packages: [apache2-mpm-prefork, apache2-prefork-dev, libcurl4-openssl-dev, libapache2-mod-xsendfile]
|
15
|
-
gems: [fastthread, rack, [passenger, "#{passenger_version}"]]
|
12
|
+
packages: [apache2-mpm-prefork, apache2-prefork-dev, libcurl4-openssl-dev, libapache2-mod-xsendfile, [libapache2-mod-passenger, "#{passenger_version}"]]
|
16
13
|
rolling_restart_port: "#{passenger_listen_port}"
|
17
14
|
|
18
15
|
web_tools:
|
@@ -47,7 +47,7 @@ http
|
|
47
47
|
error_log <%= rubber_env.nginx_log_dir %>/error.log notice;
|
48
48
|
access_log <%= rubber_env.nginx_log_dir %>/access.log main;
|
49
49
|
|
50
|
-
passenger_root
|
50
|
+
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
|
51
51
|
passenger_ruby <%= rubber_env.passenger_ruby %>;
|
52
52
|
|
53
53
|
passenger_max_pool_size <%= rubber_env.max_app_connections %>;
|
@@ -55,11 +55,12 @@ http
|
|
55
55
|
passenger_max_instances_per_app 0;
|
56
56
|
passenger_pool_idle_time 0;
|
57
57
|
passenger_max_preloader_idle_time 0;
|
58
|
-
|
58
|
+
passenger_app_env <%= Rubber.env %>;
|
59
59
|
passenger_friendly_error_pages <%= Rubber.env == 'production' ? 'off' : 'on' %>;
|
60
60
|
|
61
61
|
passenger_user <%= rubber_env.app_user %>;
|
62
|
-
|
62
|
+
passenger_group <%= rubber_env.app_user %>;
|
63
|
+
|
63
64
|
include /etc/nginx/rubber/passenger_nginx.conf;
|
64
65
|
<% if rubber_instances[rubber_env.host].role_names.include?('web_tools') %>
|
65
66
|
include /etc/nginx/rubber/tools.conf;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
passenger_version: '1:4.0.48-1~`lsb_release -sc`1'
|
2
2
|
passenger_ruby: "#{ruby_path}/bin/ruby"
|
3
3
|
nginx_log_dir: /mnt/nginx/logs
|
4
4
|
passenger_listen_port: 7000
|
@@ -14,4 +14,4 @@ use_ssl_key: false
|
|
14
14
|
|
15
15
|
roles:
|
16
16
|
passenger_nginx:
|
17
|
-
packages: [libcurl4-openssl-dev, libpcre3-dev, nginx-extras, passenger]
|
17
|
+
packages: [libcurl4-openssl-dev, libpcre3-dev, nginx-extras, [passenger, "#{passenger_version}"]
|
@@ -109,7 +109,7 @@ unix_socket_directory = '/var/run/postgresql' # (change requires restart)
|
|
109
109
|
|
110
110
|
# - Memory -
|
111
111
|
|
112
|
-
shared_buffers =
|
112
|
+
shared_buffers = 28MB # min 128kB
|
113
113
|
# (change requires restart)
|
114
114
|
#temp_buffers = 8MB # min 800kB
|
115
115
|
#max_prepared_transactions = 0 # zero disables the feature
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,176 +9,176 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-08-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name: capistrano
|
16
|
-
version_requirements: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ~>
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '2.12'
|
21
15
|
requirement: !ruby/object:Gem::Requirement
|
22
16
|
requirements:
|
23
17
|
- - ~>
|
24
18
|
- !ruby/object:Gem::Version
|
25
19
|
version: '2.12'
|
20
|
+
name: capistrano
|
26
21
|
prerelease: false
|
27
22
|
type: :runtime
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: net-ssh
|
30
23
|
version_requirements: !ruby/object:Gem::Requirement
|
31
24
|
requirements:
|
32
25
|
- - ~>
|
33
26
|
- !ruby/object:Gem::Version
|
34
|
-
version: '2.
|
27
|
+
version: '2.12'
|
28
|
+
- !ruby/object:Gem::Dependency
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - ~>
|
38
32
|
- !ruby/object:Gem::Version
|
39
33
|
version: '2.6'
|
34
|
+
name: net-ssh
|
40
35
|
prerelease: false
|
41
36
|
type: :runtime
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: thor
|
44
37
|
version_requirements: !ruby/object:Gem::Requirement
|
45
38
|
requirements:
|
46
|
-
- -
|
39
|
+
- - ~>
|
47
40
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
41
|
+
version: '2.6'
|
42
|
+
- !ruby/object:Gem::Dependency
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
48
|
+
name: thor
|
54
49
|
prerelease: false
|
55
50
|
type: :runtime
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: clamp
|
58
51
|
version_requirements: !ruby/object:Gem::Requirement
|
59
52
|
requirements:
|
60
53
|
- - '>='
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
59
|
- - '>='
|
66
60
|
- !ruby/object:Gem::Version
|
67
61
|
version: '0'
|
62
|
+
name: clamp
|
68
63
|
prerelease: false
|
69
64
|
type: :runtime
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: open4
|
72
65
|
version_requirements: !ruby/object:Gem::Requirement
|
73
66
|
requirements:
|
74
67
|
- - '>='
|
75
68
|
- !ruby/object:Gem::Version
|
76
69
|
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
73
|
- - '>='
|
80
74
|
- !ruby/object:Gem::Version
|
81
75
|
version: '0'
|
76
|
+
name: open4
|
82
77
|
prerelease: false
|
83
78
|
type: :runtime
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: fog
|
86
79
|
version_requirements: !ruby/object:Gem::Requirement
|
87
80
|
requirements:
|
88
|
-
- -
|
81
|
+
- - '>='
|
89
82
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
87
|
- - ~>
|
94
88
|
- !ruby/object:Gem::Version
|
95
89
|
version: '1.6'
|
90
|
+
name: fog
|
96
91
|
prerelease: false
|
97
92
|
type: :runtime
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: json
|
100
93
|
version_requirements: !ruby/object:Gem::Requirement
|
101
94
|
requirements:
|
102
|
-
- -
|
95
|
+
- - ~>
|
103
96
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
97
|
+
version: '1.6'
|
98
|
+
- !ruby/object:Gem::Dependency
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
106
100
|
requirements:
|
107
101
|
- - '>='
|
108
102
|
- !ruby/object:Gem::Version
|
109
103
|
version: '0'
|
104
|
+
name: json
|
110
105
|
prerelease: false
|
111
106
|
type: :runtime
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: rake
|
114
107
|
version_requirements: !ruby/object:Gem::Requirement
|
115
108
|
requirements:
|
116
109
|
- - '>='
|
117
110
|
- !ruby/object:Gem::Version
|
118
111
|
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
115
|
- - '>='
|
122
116
|
- !ruby/object:Gem::Version
|
123
117
|
version: '0'
|
118
|
+
name: rake
|
124
119
|
prerelease: false
|
125
120
|
type: :development
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: test-unit
|
128
121
|
version_requirements: !ruby/object:Gem::Requirement
|
129
122
|
requirements:
|
130
123
|
- - '>='
|
131
124
|
- !ruby/object:Gem::Version
|
132
125
|
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
134
128
|
requirements:
|
135
129
|
- - '>='
|
136
130
|
- !ruby/object:Gem::Version
|
137
131
|
version: '0'
|
132
|
+
name: test-unit
|
138
133
|
prerelease: false
|
139
134
|
type: :development
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: shoulda-context
|
142
135
|
version_requirements: !ruby/object:Gem::Requirement
|
143
136
|
requirements:
|
144
137
|
- - '>='
|
145
138
|
- !ruby/object:Gem::Version
|
146
139
|
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
147
141
|
requirement: !ruby/object:Gem::Requirement
|
148
142
|
requirements:
|
149
143
|
- - '>='
|
150
144
|
- !ruby/object:Gem::Version
|
151
145
|
version: '0'
|
146
|
+
name: shoulda-context
|
152
147
|
prerelease: false
|
153
148
|
type: :development
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
|
-
name: mocha
|
156
149
|
version_requirements: !ruby/object:Gem::Requirement
|
157
150
|
requirements:
|
158
151
|
- - '>='
|
159
152
|
- !ruby/object:Gem::Version
|
160
153
|
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
161
155
|
requirement: !ruby/object:Gem::Requirement
|
162
156
|
requirements:
|
163
157
|
- - '>='
|
164
158
|
- !ruby/object:Gem::Version
|
165
159
|
version: '0'
|
160
|
+
name: mocha
|
166
161
|
prerelease: false
|
167
162
|
type: :development
|
168
|
-
- !ruby/object:Gem::Dependency
|
169
|
-
name: awesome_print
|
170
163
|
version_requirements: !ruby/object:Gem::Requirement
|
171
164
|
requirements:
|
172
165
|
- - '>='
|
173
166
|
- !ruby/object:Gem::Version
|
174
167
|
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
175
169
|
requirement: !ruby/object:Gem::Requirement
|
176
170
|
requirements:
|
177
171
|
- - '>='
|
178
172
|
- !ruby/object:Gem::Version
|
179
173
|
version: '0'
|
174
|
+
name: awesome_print
|
180
175
|
prerelease: false
|
181
176
|
type: :development
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
182
|
description: |2
|
183
183
|
The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to
|
184
184
|
Amazon's Elastic Compute Cloud (EC2). Like capistrano, rubber is role based, so you can define a set
|