magic_recipes_two 0.0.17 → 0.0.18

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjhkY2ZjYzlkMWViYjdjMDQ1YjExZjczZmE3ZDQxOTkzOTRmYjM4Yg==
5
- data.tar.gz: !binary |-
6
- ZmRjOTQyNzkwYmQyYmY3YTM1MGRjYWIxNzI0NmRmNjcwNTk3Yzg2MQ==
2
+ SHA1:
3
+ metadata.gz: 0cfe32634c619b16b956e5834a1dc55e92884fcc
4
+ data.tar.gz: 612a92fbc119c1e0a34364e90359ace9891c593a
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZjVjNWVhODI0ZmRkMzk0NWVkMmJkOWNkNmRmMTFlMTI0OWMxNDQ4YzY5NzM0
10
- OGM2NzFmYmU3ZGZkY2EyYmRlNWZiYTE2NzZkN2ZjYjk3NGUyNTU2MWVkZjEw
11
- MTZiYzg1M2IxZTE1NjA2NDU2NzYwMTYxOTQ2OGViYTEyNGVhNDY=
12
- data.tar.gz: !binary |-
13
- NjI0YWIyZmRiOTViYTUzNmY5NjhiYTI5NDhiYTNkM2U5ZmM5YjVhOWNhMDY4
14
- OGE5NjY4OGFjN2U1M2RmOTVkZjdiNjlkNzU1OGRiZjRjZGQ3ODQ1YmU0M2Rj
15
- MGRlYmRmMmQwYjBlMDE5NGM1ZGMzYzAyZTg4NDUyY2U0MTI3NDI=
6
+ metadata.gz: d5e9d6e2ff202c97130665610cd8cca8fe04b957c6d6854e87c11f37e1ef657f911ed0dc4661f616fd66a2ed997f66e66ba481ac0de5c258c382cc88844570e1
7
+ data.tar.gz: 786e03fafa10c2f9a77db94ad15db46d756e58448f0f85e1cbccf1a76ea9e053f2ef66b397bfc2e7d41038d2c6883eaa5f173165de67355064c443e43f7c384c
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module MagicRecipes
3
- VERSION = "0.0.17"
3
+ VERSION = "0.0.18"
4
4
  end
5
5
  end
@@ -4,23 +4,46 @@ include Capistrano::MagicRecipes::BaseHelpers
4
4
 
5
5
  namespace :load do
6
6
  task :defaults do
7
- set :nginx_domains, -> { [] }
8
- set :default_site, -> { false }
9
- set :app_instances, -> { 1 }
10
- set :nginx_service_path, -> { 'service nginx' }
11
- set :nginx_roles, -> { :web }
12
- set :nginx_log_path, -> { "#{shared_path}/log" }
13
- set :nginx_root_path, -> { "/etc/nginx" }
14
- set :nginx_static_dir, -> { "public" }
15
- set :nginx_sites_enabled, -> { "sites-enabled" }
16
- set :nginx_sites_available, -> { "sites-available" }
17
- set :nginx_template, -> { :default }
18
- set :nginx_use_ssl, -> { false }
19
- set :nginx_ssl_certificate, -> { "#{fetch(:application)}.crt" }
20
- set :nginx_ssl_certificate_path, -> { '/etc/ssl/certs' }
21
- set :nginx_ssl_certificate_key, -> { "#{fetch(:application)}.crt" }
7
+ set :nginx_domains, -> { [] }
8
+ set :nginx_major_domain, -> { false }
9
+ set :nginx_remove_www, -> { true }
10
+ set :default_site, -> { false }
11
+ set :app_instances, -> { 1 }
12
+ set :nginx_service_path, -> { 'service nginx' }
13
+ set :nginx_roles, -> { :web }
14
+ set :nginx_log_path, -> { "#{shared_path}/log" }
15
+ set :nginx_root_path, -> { "/etc/nginx" }
16
+ set :nginx_static_dir, -> { "public" }
17
+ set :nginx_sites_enabled, -> { "sites-enabled" }
18
+ set :nginx_sites_available, -> { "sites-available" }
19
+ set :nginx_template, -> { :default }
20
+ set :nginx_use_ssl, -> { false }
21
+ set :nginx_ssl_certificate, -> { "#{fetch(:application)}.crt" }
22
+ set :nginx_ssl_certificate_path, -> { '/etc/ssl/certs' }
23
+ set :nginx_ssl_certificate_key, -> { "#{fetch(:application)}.crt" }
22
24
  set :nginx_ssl_certificate_key_path, -> { '/etc/ssl/private' }
23
- set :app_server_ip, -> { "127.0.0.1" }
25
+ set :app_server_ip, -> { "127.0.0.1" }
26
+ ## NginX Proxy-Caching
27
+ # Cache Rails
28
+ set :proxy_cache_rails, -> { false }
29
+ set :proxy_cache_rails_directory, -> { "#{shared_path}/tmp/proxy_cache/rails" }
30
+ set :proxy_cache_rails_levels, -> { "1:2" }
31
+ set :proxy_cache_rails_name, -> { "RAILS_#{fetch(:application)}_#{fetch(:stage)}_CACHE" }
32
+ set :proxy_cache_rails_size, -> { "4m" }
33
+ set :proxy_cache_rails_time, -> { "24h" }
34
+ set :proxy_cache_rails_max, -> { "1g" }
35
+ set :proxy_cache_rails_200, -> { false }
36
+ set :proxy_cache_rails_404, -> { "60m" }
37
+ set :proxy_cache_rails_stale, -> { ["error", "timeout", "invalid_header", "updating"] }
38
+ # Cache Media (Dragonfly)
39
+ set :proxy_cache_media, -> { false }
40
+ set :proxy_cache_media_path, -> { "media" }
41
+ set :proxy_cache_media_directory, -> { "#{shared_path}/tmp/proxy_cache/media" }
42
+ set :proxy_cache_media_levels, -> { "1:2" }
43
+ set :proxy_cache_media_name, -> { "MEDIA_#{fetch(:application)}_#{fetch(:stage)}_CACHE" }
44
+ set :proxy_cache_media_size, -> { "2m" }
45
+ set :proxy_cache_media_time, -> { "48h" }
46
+ set :proxy_cache_media_max, -> { "1g" }
24
47
  end
25
48
  end
26
49
 
@@ -47,6 +70,8 @@ namespace :nginx do
47
70
  after 'deploy:check', nil do
48
71
  on release_roles fetch(:nginx_roles) do
49
72
  execute :mkdir, '-pv', fetch(:nginx_log_path)
73
+ execute :mkdir, '-pv', fetch(:proxy_cache_rails_path) if fetch(:proxy_cache_rails)
74
+ execute :mkdir, '-pv', fetch(:proxy_cache_media_path) if fetch(:proxy_cache_media)
50
75
  end
51
76
  end
52
77
 
@@ -1,24 +1,48 @@
1
+ ###
2
+ ### HTTP-Config generated with magic_recipes_two at: <%= Time.now.strftime("%Y-%m-%d .. %H:%M .. %Z") %>
3
+ ###
4
+ <% joiner = "\n " %>
1
5
  upstream thin_<%= fetch(:application) %>_<%= fetch(:stage) %>_cluster {
2
6
  <% fetch(:app_instances).to_i.times do |i| %>
3
- server unix:/tmp/thin.<%= fetch(:application) %>.<%= fetch(:stage) %>.<%= i %>.sock max_fails=1 fail_timeout=15s;
7
+ server unix:/tmp/thin.<%= fetch(:application) %>.<%= fetch(:stage) %>.<%= i %>.sock
8
+ max_fails=1
9
+ fail_timeout=15s;
4
10
  <% end %>
5
11
  }
6
12
 
13
+ <% if fetch(:proxy_cache_rails) %>
14
+ # Proxy-Caching - Rails - Sites
15
+ proxy_cache_path <%= fetch(:proxy_cache_rails_directory) %>
16
+ levels=<%= fetch(:proxy_cache_rails_levels) %>
17
+ keys_zone=<%= fetch(:proxy_cache_rails_name) %>:<%= fetch(:proxy_cache_rails_size) %>
18
+ inactive=<%= fetch(:proxy_cache_rails_keep) %>
19
+ max_size=<%= fetch(:proxy_cache_rails_max) %>;
20
+
21
+ <% end %><% if fetch(:proxy_cache_media) %>
22
+ # Proxy-Caching - Media (Dragonfly) - Files
23
+ proxy_cache_path <%= fetch(:proxy_cache_media_directory) %>
24
+ levels=<%= fetch(:proxy_cache_media_levels) %>
25
+ keys_zone=<%= fetch(:proxy_cache_media_name) %>:<%= fetch(:proxy_cache_media_size) %>
26
+ inactive=<%= fetch(:proxy_cache_media_keep) %>
27
+ max_size=<%= fetch(:proxy_cache_media_max) %>;
28
+
29
+ <% end %>
30
+
7
31
  # HTTP Server
8
32
  <% if fetch(:nginx_use_ssl) %>
9
33
  <% if fetch(:nginx_major_domain) %>
10
34
  server {
11
- listen 80<%= ' default_server' if fetch(:default_site) %>;
12
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| d.gsub(/^\*?\./, "") }.join("\n ") %>
13
- <%= ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" %>;
35
+ listen 80<%= ' default_server' if fetch(:default_site) %>;
36
+ server_name <%= Array(fetch(:nginx_domains)).map{ |d| d.gsub(/^\*?\./, "") }.join(joiner) %>
37
+ <%= ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" %>;
14
38
 
15
39
  # return 301 https://<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
16
40
 
17
41
  location ^~ /assets/ico/ {
18
- root <%= current_path %>/public;
19
- gzip_static on;
20
- expires max;
21
- add_header Cache-Control public;
42
+ root <%= current_path %>/public;
43
+ gzip_static on;
44
+ expires max;
45
+ add_header Cache-Control public;
22
46
  }
23
47
  location / {
24
48
  return 301 https://<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
@@ -27,17 +51,17 @@ server {
27
51
  }
28
52
  server {
29
53
  listen 80;
30
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| "~^(?<sub>\w+)#{ Regexp.escape( ".#{d.gsub(/^\*?\./, "")}" ) }" }.join("\n ") %>
31
- <%= "~^#{Regexp.escape("www.")}(?<sub>\w+)#{ Regexp.escape( ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" ) }" %>
32
- <%= "~^(?<sub>\w+)#{ Regexp.escape( ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" ) }" %>;
54
+ server_name <%= Array(fetch(:nginx_domains)).map{ |d| "~^(?<sub>\w+)#{ Regexp.escape( ".#{d.gsub(/^\*?\./, "")}" ) }" }.join(joiner) %>
55
+ <%= "~^#{Regexp.escape("www.")}(?<sub>\w+)#{ Regexp.escape( ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" ) }" %>
56
+ <%= "~^(?<sub>\w+)#{ Regexp.escape( ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" ) }" %>;
33
57
 
34
58
  # return 301 https://$sub.<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
35
59
 
36
60
  location ^~ /assets/ico/ {
37
- root <%= current_path %>/public;
38
- gzip_static on;
39
- expires max;
40
- add_header Cache-Control public;
61
+ root <%= current_path %>/public;
62
+ gzip_static on;
63
+ expires max;
64
+ add_header Cache-Control public;
41
65
  }
42
66
  location / {
43
67
  return 301 https://$sub.<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
@@ -46,15 +70,15 @@ server {
46
70
  }
47
71
  <% else %>
48
72
  server {
49
- listen 80;
50
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| d[0] == "." ? d : ".#{d}"}.join("\n ") %>;
73
+ listen 80;
74
+ server_name <%= Array(fetch(:nginx_domains)).map{ |d| d[0] == "." ? d : ".#{d}"}.join(joiner) %>;
51
75
  # return 301 https://$host$request_uri;
52
76
 
53
77
  location ^~ /assets/ico/ {
54
- root <%= current_path %>/public;
55
- gzip_static on;
56
- expires max;
57
- add_header Cache-Control public;
78
+ root <%= current_path %>/public;
79
+ gzip_static on;
80
+ expires max;
81
+ add_header Cache-Control public;
58
82
  }
59
83
  location / {
60
84
  return 301 https://$host$request_uri;
@@ -68,60 +92,68 @@ server {
68
92
  <% if fetch(:nginx_use_ssl) %>
69
93
  # ssl-domain
70
94
  server {
71
- listen 443;
72
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| d.gsub(/^\*?\./, "") }.join("\n ") %>;
95
+ listen 443;
96
+ server_name <%= Array(fetch(:nginx_domains)).map{ |d| d.gsub(/^\*?\./, "") }.join(joiner) %>;
73
97
  return 301 https://<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
74
98
  ssl on;
75
- ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_old_ssl_certificate) %>;
76
- ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_old_ssl_certificate_key) %>;
99
+ ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_old_ssl_certificate) %>;
100
+ ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_old_ssl_certificate_key) %>;
77
101
  }
78
102
  # ssl-with-subdomain
79
103
  server {
80
- listen 443;
81
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| "~^(?<sub>\w+)\.#{ Regexp.escape( d.gsub(/^\*?\./, "") ) }" }.join("\n ") %>;
104
+ listen 443;
105
+ server_name <%= Array(fetch(:nginx_domains)).map{ |d| "~^(?<sub>\w+)\.#{ Regexp.escape( d.gsub(/^\*?\./, "") ) }" }.join(joiner) %>;
82
106
  return 301 https://$sub.<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
83
107
  ssl on;
84
- ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_old_ssl_certificate) %>;
85
- ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_old_ssl_certificate_key) %>;
108
+ ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_old_ssl_certificate) %>;
109
+ ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_old_ssl_certificate_key) %>;
86
110
  }
87
111
  <% else %>
88
112
  server {
89
- listen 80;
90
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| d.gsub(/^\*?\./, "") }.join("\n ") %>;
113
+ listen 80;
114
+ server_name
115
+
116
+ <%= Array(fetch(:nginx_domains)).map{ |d| d.gsub(/^\*?\./, "") }.join(joiner) %>;
91
117
  return 301 http://<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
92
118
  }
93
119
  server {
94
- listen 80;
95
- server_name <%= Array(fetch(:nginx_domains)).map{ |d| "~^(?<sub>\w+)\.#{ Regexp.escape( d.gsub(/^\*?\./, "") ) }" }.join("\n ") %>;
120
+ listen 80;
121
+ server_name <%= Array(fetch(:nginx_domains)).map{ |d| "~^(?<sub>\w+)\.#{ Regexp.escape( d.gsub(/^\*?\./, "") ) }" }.join(joiner) %>;
96
122
  return 301 http://$sub.<%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>$request_uri;
97
123
  }
98
124
  <% end %>
99
125
  <% end %>
100
126
 
127
+
128
+
129
+
130
+
101
131
  server {
102
132
  <% if fetch(:nginx_use_ssl) %>
103
- listen 443<%= ' default_server ssl' if fetch(:default_site) %>;
104
- ssl on;
105
- ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_ssl_certificate) %>;
106
- ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_ssl_certificate_key) %>;
133
+ listen 443<%= ' default_server ssl' if fetch(:default_site) %>;
134
+ ssl on;
135
+ ssl_certificate <%= fetch(:nginx_ssl_certificate_path) %>/<%= fetch(:nginx_ssl_certificate) %>;
136
+ ssl_certificate_key <%= fetch(:nginx_ssl_certificate_key_path) %>/<%= fetch(:nginx_ssl_certificate_key) %>;
107
137
  <% else %>
108
- listen 80<%= ' default deferred' if fetch(:default_site) %>;
138
+ listen 80<%= ' default deferred' if fetch(:default_site) %>;
109
139
  <% end %>
110
140
  <% if fetch(:nginx_major_domain) %>
111
- server_name <%= ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" %>;
141
+ server_name <%= ".#{fetch(:nginx_major_domain).gsub(/^\*?\./, "")}" %>;
112
142
  <% else %>
113
- server_name <%= Array( fetch(:nginx_domains) ).join("\n ") %>;
143
+ server_name <%= Array( fetch(:nginx_domains) ).join(joiner) %>;
114
144
  <% end %>
115
145
 
146
+ <% if fetch(:nginx_remove_www) %>
116
147
  if ($host ~* ^www\.(.*)) {
117
148
  set $host_without_www $1;
118
149
  rewrite ^(.*) http://$host_without_www$1 permanent;
119
150
  }
151
+ <% end %>
120
152
 
121
- root <%= current_path %>/public;
153
+ root <%= current_path %>/public;
122
154
 
123
- access_log <%= fetch(:nginx_log_path) %>/nginx-access.log;
124
- error_log <%= fetch(:nginx_log_path) %>/nginx-error.log;
155
+ access_log <%= fetch(:nginx_log_path) %>/nginx-access.log;
156
+ error_log <%= fetch(:nginx_log_path) %>/nginx-error.log;
125
157
 
126
158
  error_page 404 /404.html;
127
159
  location /404.html { root <%= fetch(:deploy_to) %>/current/<%= fetch(:nginx_static_dir) %>; }
@@ -129,26 +161,51 @@ server {
129
161
  error_page 500 502 503 504 /500.html;
130
162
  location /500.html { root <%= fetch (:deploy_to) %>/current/<%= fetch(:nginx_static_dir) %>; }
131
163
 
132
- client_max_body_size 4G;
133
- keepalive_timeout 10;
164
+ client_max_body_size 4G;
165
+ keepalive_timeout 10;
134
166
 
135
167
  location ^~ /assets/ {
136
- gzip_static on;
137
- expires max;
138
- add_header Cache-Control public;
168
+ gzip_static on;
169
+ expires max;
170
+ add_header Cache-Control public;
139
171
  }
140
172
 
173
+ <% if fetch(:proxy_cache_media) %>
174
+ # Media-Path with NginX-Proxy-Cache
175
+ location ^~ /<%= fetch(:proxy_cache_media_path) %>/ {
176
+ auth_basic off;
177
+ proxy_cache <%= fetch(:proxy_cache_media_name) %>;
178
+ proxy_cache_lock on;
179
+ add_header X-Cache-Status $upstream_cache_status;
180
+ proxy_cache_bypass $http_bypass_proxy;
181
+ proxy_pass $scheme://thin_<%= fetch(:application) %>_<%= fetch(:stage) %>_cluster;
182
+ }
183
+ <% end %>
184
+
141
185
  try_files $uri/index.html $uri @thin_<%= fetch(:application) %>_<%= fetch(:stage) %>;
142
186
 
143
187
  location @thin_<%= fetch(:application) %>_<%= fetch(:stage) %> {
144
- proxy_set_header X-Real-IP $remote_addr;
145
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
146
- proxy_set_header X-FORWARDED_PROTO http;
147
- proxy_set_header Host $host:$server_port;
148
- <% if fetch(:nginx_use_ssl) %>
149
- proxy_set_header X-Forwarded-Proto https;
150
- <% end %>
151
- proxy_redirect off;
152
- proxy_pass http://thin_<%= fetch(:application) %>_<%= fetch(:stage) %>_cluster;
188
+ # rewrite Headers for correct behavior
189
+ proxy_set_header X-Real-IP $remote_addr;
190
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
191
+ proxy_set_header X-Forwarded-Proto $scheme;
192
+ proxy_set_header Host $host:$server_port;
193
+ proxy_redirect off;
194
+ <% if fetch(:proxy_cache_rails) %>
195
+ # cache rails actions (need public header)
196
+ proxy_cache <%= fetch(:proxy_cache_rails_name) %>;
197
+ proxy_cache_lock on;
198
+ <% if fetch(:proxy_cache_rails_200) %>
199
+ proxy_cache_valid 200 302 <%= fetch(:proxy_cache_rails_200) %>;
200
+ <% end %>
201
+ <% if fetch(:proxy_cache_rails_404) %>
202
+ proxy_cache_valid 404 <%= fetch(:proxy_cache_rails_404) %>;
203
+ <% end %>
204
+ proxy_cache_use_stale <%= Array( fetch(:proxy_cache_rails_stale) ).join(" ") %>;
205
+ proxy_cache_bypass $http_bypass_proxy;
206
+ add_header X-Cache-Status $upstream_cache_status;
207
+ <% end %>
208
+ # pass request to thin upstream
209
+ proxy_pass http://thin_<%= fetch(:application) %>_<%= fetch(:stage) %>_cluster;
153
210
  }
154
211
  }
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic_recipes_two
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Torsten Wetzel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2015-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: capistrano
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: capistrano-bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: capistrano-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rvm1-capistrano3
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.2'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.2'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: capistrano-postgresql
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '4.2'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '4.2'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sqlite3
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: MagicRecipesTwo contains our most used deployment recipes for Capistrano-3.
@@ -165,17 +165,17 @@ require_paths:
165
165
  - lib
166
166
  required_ruby_version: !ruby/object:Gem::Requirement
167
167
  requirements:
168
- - - ! '>='
168
+ - - ">="
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - ! '>='
173
+ - - ">="
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []
177
177
  rubyforge_project:
178
- rubygems_version: 2.4.8
178
+ rubygems_version: 2.4.5
179
179
  signing_key:
180
180
  specification_version: 4
181
181
  summary: Some recipes for rails-4 and capistrano-3.