rob_cap_recipes 0.0.3 → 0.0.4.alpha1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63908a2f06a29f54f7829069c4f78efdc2d9c8be
4
- data.tar.gz: 6b2262c8a79ed8852e13ef75fc72c5e602b9bdf4
3
+ metadata.gz: 59dafa8edafa120f5a4439ff1e5d9a2130d27c6a
4
+ data.tar.gz: 5e27c2c8b1b6bd28706b24f4843f84b39517d9b3
5
5
  SHA512:
6
- metadata.gz: c61290bfb43325f1f38687b218fda4c953aed2c3014b12bb7f71268b5e6f5d5527170b2a52e1d6f590c49204e53a6971cba1195a9ee06fa40012327ee66b52e0
7
- data.tar.gz: 03de8f594964a343b4ae54ac7efaf098a87bac00edc0e167e9c74f742b8a4e31bbff0b132bf6992013ed0b20d540798f5fbd50fe7941d54140576f8f19958b3e
6
+ metadata.gz: 5d071e901205404ba3f6f30f51680a2dd45b163e49fe719ceacbdf1d9a814ef682b22f89e08a039fa427a5e7d3f1cbfc2176cf60d33df9d2d27c803e2dddae0b
7
+ data.tar.gz: 6c7fe27d6ea3565d11001fe6a7b82206c5bd045f7f8e0dc012ecf6b0ef4d8256ebfed62fefe9d783c108f3f6101b9162667f149d30878a30c0c34ab0743a48aa
@@ -0,0 +1,34 @@
1
+ Capistrano::Configuration.instance(true).load do
2
+ _cset(:puma_user){user}
3
+ _cset(:puma_pid){ "#{current_path}/tmp/sockets/puma.pid" }
4
+ _cset(:puma_state){ "#{current_path}/tmp/sockets/puma.state" }
5
+ _cset(:puma_socket){ "#{current_path}/tmp/sockets/puma.sock" }
6
+ _cset(:puma_config){ "#{shared_path}/config/puma.rb" }
7
+
8
+ namespace :puma_robstr do
9
+ desc "Setup Puma initializer and app configuration"
10
+ task :setup, roles: :app do
11
+ run "mkdir -p #{shared_path}/config"
12
+ unless File.exist?(puma_config)
13
+ template "puma.rb.erb", puma_config
14
+ end
15
+ template "puma_init.erb", "/tmp/puma_init"
16
+ run "chmod +x /tmp/puma_init"
17
+ run "#{sudo} mv /tmp/puma_init /etc/init.d/puma"
18
+ run "#{sudo} update-rc.d -f puma defaults"
19
+ run "#{sudo} touch /etc/puma.conf"
20
+ template "puma_run", "/tmp/run-puma"
21
+ run "chmod +x /tmp/run-puma"
22
+ run "#{sudo} mv /tmp/run-puma /usr/local/bin/run-puma"
23
+ run "#{sudo} /etc/init.d/puma add #{current_path} #{puma_user}"
24
+ end
25
+ after "deploy:setup", "puma_robstr:setup"
26
+
27
+ desc "Symlink the puma files into latest release"
28
+ task :symlink, roles: :app do
29
+ run "ln -nfs #{shared_path}/config/puma.rb #{release_path}/config/puma.rb"
30
+ run "ln -nfs #{shared_path}/sockets #{release_path}/tmp/sockets"
31
+ end
32
+ after "deploy:finalize_update", "puma_robstr:symlink"
33
+ end
34
+ end
@@ -1,5 +1,5 @@
1
1
  upstream nginx.<%= host_header %> {
2
- server unix:/tmp/nginx.<%= application %>.sock fail_timeout=0;
2
+ server <%= "unix://#{puma_socket}" %> fail_timeout=0;
3
3
  }
4
4
 
5
5
  server {
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env puma
2
+
3
+ environment '<%= rails_env %>'
4
+
5
+ pidfile '<%= puma_pid %>'
6
+ state_path '<%= puma_state %>'
7
+ bind '<%= puma_socket %>'
8
+
9
+ # The directory to operate out of.
10
+ #
11
+ # The default is the current directory.
12
+ #
13
+ # directory '/u/apps/lolcat'
14
+
15
+ # Use a object or block as the rack application. This allows the
16
+ #!/usr/bin/env puma
17
+
18
+ # The directory to operate out of.
19
+ #
20
+ # The default is the current directory.
21
+ #
22
+ # directory '/u/apps/lolcat'
23
+
24
+ # Use a object or block as the rack application. This allows the
25
+ # config file to be the application itself.
26
+ #
27
+ # app do |env|
28
+ # puts env
29
+ #
30
+ # body = 'Hello, World!'
31
+ #
32
+ # [200, { 'Content-Type' => 'text/plain', 'Content-Length' => body.length.to_s }, [body]]
33
+ # end
34
+
35
+ # Load “path” as a rackup file.
36
+ #
37
+ # The default is “config.ru”.
38
+ #
39
+ # rackup '/u/apps/lolcat/config.ru'
40
+
41
+ # Set the environment in which the rack's app will run. The value must be a string.
42
+ #
43
+ # The default is “development”.
44
+ #
45
+ # environment 'production'
46
+
47
+ # Daemonize the server into the background. Highly suggest that
48
+ # this be combined with “pidfile” and “stdout_redirect”.
49
+ #
50
+ # The default is “false”.
51
+ #
52
+ # daemonize
53
+ # daemonize false
54
+
55
+ # Store the pid of the server in the file at “path”.
56
+ #
57
+ # pidfile '/u/apps/lolcat/tmp/pids/puma.pid'
58
+
59
+ # Use “path” as the file to store the server info state. This is
60
+ # used by “pumactl” to query and control the server.
61
+ #
62
+ # state_path '/u/apps/lolcat/tmp/pids/puma.state'
63
+
64
+ # Redirect STDOUT and STDERR to files specified. The 3rd parameter
65
+ # (“append”) specifies whether the output is appended, the default is
66
+ # “false”.
67
+ #
68
+ # stdout_redirect '/u/apps/lolcat/log/stdout', '/u/apps/lolcat/log/stderr'
69
+ # stdout_redirect '/u/apps/lolcat/log/stdout', '/u/apps/lolcat/log/stderr', true
70
+
71
+ # Disable request logging.
72
+ #
73
+ # The default is “false”.
74
+ #
75
+ # quiet
76
+
77
+ # Configure “min” to be the minimum number of threads to use to answer
78
+ # requests and “max” the maximum.
79
+ #
80
+ # The default is “0, 16”.
81
+ #
82
+ # threads 0, 16
83
+
84
+ # Bind the server to “url”. “tcp://”, “unix://” and “ssl://” are the only
85
+ # accepted protocols.
86
+ #
87
+ # The default is “tcp://0.0.0.0:9292”.
88
+ #
89
+ # bind 'tcp://0.0.0.0:9292'
90
+ # bind 'unix:///var/run/puma.sock'
91
+ # bind 'unix:///var/run/puma.sock?umask=0777'
92
+ # bind 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert'
93
+
94
+ # Instead of “bind 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert'” you
95
+ # can also use the “ssl_bind” option.
96
+ #
97
+ # ssl_bind '127.0.0.1', '9292', { key: path_to_key, cert: path_to_cert }
98
+
99
+ # Code to run before doing a restart. This code should
100
+ # close log files, database connections, etc.
101
+ #
102
+ # This can be called multiple times to add code each time.
103
+ #
104
+ # on_restart do
105
+ # puts 'On restart...'
106
+ # end
107
+
108
+ # Command to use to restart puma. This should be just how to
109
+ # load puma itself (ie. 'ruby -Ilib bin/puma'), not the arguments
110
+ # to puma, as those are the same as the original process.
111
+ #
112
+ # restart_command '/u/app/lolcat/bin/restart_puma'
113
+
114
+ # === Cluster mode ===
115
+
116
+ # How many worker processes to run.
117
+ #
118
+ # The default is “0”.
119
+ #
120
+ # workers 2
121
+
122
+ # Code to run when a worker boots to setup the process before booting
123
+ # the app.
124
+ #
125
+ # This can be called multiple times to add hooks.
126
+ #
127
+ # on_worker_boot do
128
+ # puts 'On worker boot...'
129
+ # end
130
+
131
+ # === Puma control rack application ===
132
+
133
+ # Start the puma control rack application on “url”. This application can
134
+ # be communicated with to control the main server. Additionally, you can
135
+ # provide an authentication token, so all requests to the control server
136
+ # will need to include that token as a query parameter. This allows for
137
+ # simple authentication.
138
+ #
139
+ # Check out https://github.com/puma/puma/blob/master/lib/puma/app/status.rb
140
+ # to see what the app has available.
141
+ #
142
+ # activate_control_app 'unix:///var/run/pumactl.sock'
143
+ # activate_control_app 'unix:///var/run/pumactl.sock', { auth_token: '12345' }
144
+ # activate_control_app 'unix:///var/run/pumactl.sock', { no_token: true }
145
+
@@ -0,0 +1,332 @@
1
+ #! /bin/sh
2
+ ### BEGIN INIT INFO
3
+ # Provides: puma
4
+ # Required-Start: $remote_fs $syslog
5
+ # Required-Stop: $remote_fs $syslog
6
+ # Default-Start: 2 3 4 5
7
+ # Default-Stop: 0 1 6
8
+ # Short-Description: Example initscript
9
+ # Description: This file should be used to construct scripts to be
10
+ # placed in /etc/init.d.
11
+ ### END INIT INFO
12
+
13
+ # Author: Darío Javier Cravero <dario@exordo.com>
14
+ #
15
+ # Do NOT "set -e"
16
+
17
+ # PATH should only include /usr/* if it runs after the mountnfs.sh script
18
+ PATH=/usr/local/bin:/usr/local/sbin/:/sbin:/usr/sbin:/bin:/usr/bin
19
+ DESC="Puma rack web server"
20
+ NAME=puma
21
+ DAEMON=$NAME
22
+ SCRIPTNAME=/etc/init.d/$NAME
23
+ CONFIG=/etc/puma.conf
24
+ JUNGLE=`cat $CONFIG`
25
+ RUNPUMA=/usr/local/bin/run-puma
26
+
27
+ # Load the VERBOSE setting and other rcS variables
28
+ . /lib/init/vars.sh
29
+
30
+ # Define LSB log_* functions.
31
+ # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
32
+ . /lib/lsb/init-functions
33
+
34
+ #
35
+ # Function that starts the jungle
36
+ #
37
+ do_start() {
38
+ log_daemon_msg "=> Running the jungle..."
39
+ for i in $JUNGLE; do
40
+ dir=`echo $i | cut -d , -f 1`
41
+ user=`echo $i | cut -d , -f 2`
42
+ config_file=`echo $i | cut -d , -f 3`
43
+ if [ "$config_file" = "" ]; then
44
+ config_file="$dir/config/puma.rb"
45
+ fi
46
+ log_file=`echo $i | cut -d , -f 4`
47
+ if [ "$log_file" = "" ]; then
48
+ log_file="$dir/log/puma.log"
49
+ fi
50
+ do_start_one $dir $user $config_file $log_file
51
+ done
52
+ }
53
+
54
+ do_start_one() {
55
+ PIDFILE=$1/tmp/sockets/puma.pid
56
+ if [ -e $PIDFILE ]; then
57
+ PID=`cat $PIDFILE`
58
+ # If the puma isn't running, run it, otherwise restart it.
59
+ if [ "`ps -A -o pid= | grep -c $PID`" -eq 0 ]; then
60
+ do_start_one_do $1 $2 $3 $4
61
+ else
62
+ do_restart_one $1
63
+ fi
64
+ else
65
+ do_start_one_do $1 $2 $3 $4
66
+ fi
67
+ }
68
+
69
+ do_start_one_do() {
70
+ log_daemon_msg "--> Woke up puma $1"
71
+ log_daemon_msg "user $2"
72
+ log_daemon_msg "log to $4"
73
+ start-stop-daemon --verbose --start --chdir $1 --chuid $2 --background --exec $RUNPUMA -- $1 $3 $4
74
+ }
75
+
76
+ #
77
+ # Function that stops the jungle
78
+ #
79
+ do_stop() {
80
+ log_daemon_msg "=> Putting all the beasts to bed..."
81
+ for i in $JUNGLE; do
82
+ dir=`echo $i | cut -d , -f 1`
83
+ do_stop_one $dir
84
+ done
85
+ }
86
+ #
87
+ # Function that stops the daemon/service
88
+ #
89
+ do_stop_one() {
90
+ log_daemon_msg "--> Stopping $1"
91
+ PIDFILE=$1/tmp/sockets/puma.pid
92
+ STATEFILE=$1/tmp/sockets/puma.state
93
+ if [ -e $PIDFILE ]; then
94
+ PID=`cat $PIDFILE`
95
+ if [ "`ps -A -o pid= | grep -c $PID`" -eq 0 ]; then
96
+ log_daemon_msg "---> Puma $1 isn't running."
97
+ else
98
+ log_daemon_msg "---> About to kill PID `cat $PIDFILE`"
99
+ pumactl --state $STATEFILE stop
100
+ # Many daemons don't delete their pidfiles when they exit.
101
+ rm -f $PIDFILE $STATEFILE
102
+ fi
103
+ else
104
+ log_daemon_msg "---> No puma here..."
105
+ fi
106
+ return 0
107
+ }
108
+
109
+ #
110
+ # Function that restarts the jungle
111
+ #
112
+ do_restart() {
113
+ for i in $JUNGLE; do
114
+ dir=`echo $i | cut -d , -f 1`
115
+ do_restart_one $dir
116
+ done
117
+ }
118
+
119
+ #
120
+ # Function that sends a SIGUSR2 to the daemon/service
121
+ #
122
+ do_restart_one() {
123
+ PIDFILE=$1/tmp/sockets/puma.pid
124
+ i=`grep $1 $CONFIG`
125
+ dir=`echo $i | cut -d , -f 1`
126
+
127
+ if [ -e $PIDFILE ]; then
128
+ log_daemon_msg "--> About to restart puma $1"
129
+ pumactl --state $dir/tmp/sockets/puma.state restart
130
+ # kill -s USR2 `cat $PIDFILE`
131
+ # TODO Check if process exist
132
+ else
133
+ log_daemon_msg "--> Your puma was never playing... Let's get it out there first"
134
+ user=`echo $i | cut -d , -f 2`
135
+ config_file=`echo $i | cut -d , -f 3`
136
+ if [ "$config_file" = "" ]; then
137
+ config_file="$dir/config/puma.rb"
138
+ fi
139
+ log_file=`echo $i | cut -d , -f 4`
140
+ if [ "$log_file" = "" ]; then
141
+ log_file="$dir/log/puma.log"
142
+ fi
143
+ do_start_one $dir $user $config_file $log_file
144
+ fi
145
+ return 0
146
+ }
147
+
148
+ #
149
+ # Function that statuss the jungle
150
+ #
151
+ do_status() {
152
+ for i in $JUNGLE; do
153
+ dir=`echo $i | cut -d , -f 1`
154
+ do_status_one $dir
155
+ done
156
+ }
157
+
158
+ #
159
+ # Function that sends a SIGUSR2 to the daemon/service
160
+ #
161
+ do_status_one() {
162
+ PIDFILE=$1/tmp/sockets/puma.pid
163
+ i=`grep $1 $CONFIG`
164
+ dir=`echo $i | cut -d , -f 1`
165
+
166
+ if [ -e $PIDFILE ]; then
167
+ log_daemon_msg "--> About to status puma $1"
168
+ pumactl --state $dir/tmp/sockets/puma.state stats
169
+ # kill -s USR2 `cat $PIDFILE`
170
+ # TODO Check if process exist
171
+ else
172
+ log_daemon_msg "--> $1 isn't there :(..."
173
+ fi
174
+ return 0
175
+ }
176
+
177
+ do_add() {
178
+ str=""
179
+ # App's directory
180
+ if [ -d "$1" ]; then
181
+ if [ "`grep -c "^$1" $CONFIG`" -eq 0 ]; then
182
+ str=$1
183
+ else
184
+ echo "The app is already being managed. Remove it if you want to update its config."
185
+ exit 1
186
+ fi
187
+ else
188
+ echo "The directory $1 doesn't exist."
189
+ exit 1
190
+ fi
191
+ # User to run it as
192
+ if [ "`grep -c "^$2:" /etc/passwd`" -eq 0 ]; then
193
+ echo "The user $2 doesn't exist."
194
+ exit 1
195
+ else
196
+ str="$str,$2"
197
+ fi
198
+ # Config file
199
+ if [ "$3" != "" ]; then
200
+ if [ -e $3 ]; then
201
+ str="$str,$3"
202
+ else
203
+ echo "The config file $3 doesn't exist."
204
+ exit 1
205
+ fi
206
+ fi
207
+ # Log file
208
+ if [ "$4" != "" ]; then
209
+ str="$str,$4"
210
+ fi
211
+
212
+ # Add it to the jungle
213
+ echo $str >> $CONFIG
214
+ log_daemon_msg "Added a Puma to the jungle: $str. You still have to start it though."
215
+ }
216
+
217
+ do_remove() {
218
+ if [ "`grep -c "^$1" $CONFIG`" -eq 0 ]; then
219
+ echo "There's no app $1 to remove."
220
+ else
221
+ # Stop it first.
222
+ do_stop_one $1
223
+ # Remove it from the config.
224
+ sed -i "\\:^$1:d" $CONFIG
225
+ log_daemon_msg "Removed a Puma from the jungle: $1."
226
+ fi
227
+ }
228
+
229
+ case "$1" in
230
+ start)
231
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
232
+ if [ "$#" -eq 1 ]; then
233
+ do_start
234
+ else
235
+ i=`grep $2 $CONFIG`
236
+ dir=`echo $i | cut -d , -f 1`
237
+ user=`echo $i | cut -d , -f 2`
238
+ config_file=`echo $i | cut -d , -f 3`
239
+ if [ "$config_file" = "" ]; then
240
+ config_file="$dir/config/puma.rb"
241
+ fi
242
+ log_file=`echo $i | cut -d , -f 4`
243
+ if [ "$log_file" = "" ]; then
244
+ log_file="$dir/log/puma.log"
245
+ fi
246
+ do_start_one $dir $user $config_file $log_file
247
+ fi
248
+ case "$?" in
249
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
250
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
251
+ esac
252
+ ;;
253
+ stop)
254
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
255
+ if [ "$#" -eq 1 ]; then
256
+ do_stop
257
+ else
258
+ i=`grep $2 $CONFIG`
259
+ dir=`echo $i | cut -d , -f 1`
260
+ do_stop_one $dir
261
+ fi
262
+ case "$?" in
263
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
264
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
265
+ esac
266
+ ;;
267
+ status)
268
+ # TODO Implement.
269
+ log_daemon_msg "Status $DESC" "$NAME"
270
+ if [ "$#" -eq 1 ]; then
271
+ do_status
272
+ else
273
+ i=`grep $2 $CONFIG`
274
+ dir=`echo $i | cut -d , -f 1`
275
+ do_status_one $dir
276
+ fi
277
+ case "$?" in
278
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
279
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
280
+ esac
281
+ ;;
282
+ restart)
283
+ log_daemon_msg "Restarting $DESC" "$NAME"
284
+ if [ "$#" -eq 1 ]; then
285
+ do_restart
286
+ else
287
+ i=`grep $2 $CONFIG`
288
+ dir=`echo $i | cut -d , -f 1`
289
+ do_restart_one $dir
290
+ fi
291
+ case "$?" in
292
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
293
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
294
+ esac
295
+ ;;
296
+ add)
297
+ if [ "$#" -lt 3 ]; then
298
+ echo "Please, specifiy the app's directory and the user that will run it at least."
299
+ echo " Usage: $SCRIPTNAME add /path/to/app user /path/to/app/config/puma.rb /path/to/app/config/log/puma.log"
300
+ echo " config and log are optionals."
301
+ exit 1
302
+ else
303
+ do_add $2 $3 $4 $5
304
+ fi
305
+ case "$?" in
306
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
307
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
308
+ esac
309
+ ;;
310
+ remove)
311
+ if [ "$#" -lt 2 ]; then
312
+ echo "Please, specifiy the app's directory to remove."
313
+ exit 1
314
+ else
315
+ do_remove $2
316
+ fi
317
+ case "$?" in
318
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
319
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
320
+ esac
321
+ ;;
322
+ *)
323
+ echo "Usage:" >&2
324
+ echo " Run the jungle: $SCRIPTNAME {start|stop|status|restart}" >&2
325
+ echo " Add a Puma: $SCRIPTNAME add /path/to/app user /path/to/app/config/puma.rb /path/to/app/config/log/puma.log"
326
+ echo " config and log are optionals."
327
+ echo " Remove a Puma: $SCRIPTNAME remove /path/to/app"
328
+ echo " On a Puma: $SCRIPTNAME {start|stop|status|restart} PUMA-NAME" >&2
329
+ exit 3
330
+ ;;
331
+ esac
332
+ :
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ app=$1; config=$2; log=$3;
3
+ source ${HOME}/.bashrc
4
+ cd $app && exec bundle exec puma -C $config 2>&1 >> $log
@@ -1,6 +1,7 @@
1
1
  require "rob_cap_recipes/recipes/base"
2
2
  require "rob_cap_recipes/recipes/nginx"
3
- # require "rob_cap_recipes/recipes/unicorn"
3
+ require "rob_cap_recipes/recipes/puma"
4
+ #require "rob_cap_recipes/recipes/unicorn"
4
5
  require "rob_cap_recipes/recipes/nodejs"
5
6
  require "rob_cap_recipes/recipes/rbenv"
6
7
  require "rob_cap_recipes/recipes/check"
@@ -1,3 +1,3 @@
1
1
  module RobCapRecipes
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4.alpha1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rob_cap_recipes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robin Stridsberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-28 00:00:00.000000000 Z
11
+ date: 2013-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -45,9 +45,13 @@ files:
45
45
  - lib/rob_cap_recipes/recipes/mysql.rb
46
46
  - lib/rob_cap_recipes/recipes/nginx.rb
47
47
  - lib/rob_cap_recipes/recipes/nodejs.rb
48
+ - lib/rob_cap_recipes/recipes/puma.rb
48
49
  - lib/rob_cap_recipes/recipes/rbenv.rb
49
50
  - lib/rob_cap_recipes/recipes/templates/mysql.yml.erb
50
51
  - lib/rob_cap_recipes/recipes/templates/nginx.erb
52
+ - lib/rob_cap_recipes/recipes/templates/puma.rb.erb
53
+ - lib/rob_cap_recipes/recipes/templates/puma_init.erb
54
+ - lib/rob_cap_recipes/recipes/templates/puma_run.erb
51
55
  - lib/rob_cap_recipes/recipes/templates/unicorn.rb.erb
52
56
  - lib/rob_cap_recipes/recipes/templates/unicorn_init.erb
53
57
  - lib/rob_cap_recipes/recipes/unicorn.rb
@@ -68,12 +72,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
72
  version: '0'
69
73
  required_rubygems_version: !ruby/object:Gem::Requirement
70
74
  requirements:
71
- - - '>='
75
+ - - '>'
72
76
  - !ruby/object:Gem::Version
73
- version: '0'
77
+ version: 1.3.1
74
78
  requirements: []
75
79
  rubyforge_project:
76
- rubygems_version: 2.0.3
80
+ rubygems_version: 2.0.6
77
81
  signing_key:
78
82
  specification_version: 4
79
83
  summary: Adds some recipes to capistrano. Made to fit my own environment