magic_recipes_two 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
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.