capistrano-delayed_job 0.0.1

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/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem "capistrano", ">= 2.15.5"
4
+ gem 'capistrano-base_helper', ">= 0.0.3"
5
+
6
+ group :development do
7
+ gem "bundler", ">= 1.3.0"
8
+ gem "jeweler", "~> 1.8.6"
9
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,69 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ addressable (2.3.5)
5
+ builder (3.2.2)
6
+ capistrano (2.15.5)
7
+ highline
8
+ net-scp (>= 1.0.0)
9
+ net-sftp (>= 2.0.0)
10
+ net-ssh (>= 2.0.14)
11
+ net-ssh-gateway (>= 1.1.0)
12
+ capistrano-base_helper (0.0.3)
13
+ capistrano (>= 2.15.5)
14
+ faraday (0.8.7)
15
+ multipart-post (~> 1.1)
16
+ git (1.2.5)
17
+ github_api (0.10.1)
18
+ addressable
19
+ faraday (~> 0.8.1)
20
+ hashie (>= 1.2)
21
+ multi_json (~> 1.4)
22
+ nokogiri (~> 1.5.2)
23
+ oauth2
24
+ hashie (2.0.5)
25
+ highline (1.6.19)
26
+ httpauth (0.2.0)
27
+ jeweler (1.8.6)
28
+ builder
29
+ bundler (~> 1.0)
30
+ git (>= 1.2.5)
31
+ github_api (= 0.10.1)
32
+ highline (>= 1.6.15)
33
+ nokogiri (= 1.5.10)
34
+ rake
35
+ rdoc
36
+ json (1.8.0)
37
+ jwt (0.1.8)
38
+ multi_json (>= 1.5)
39
+ multi_json (1.7.7)
40
+ multi_xml (0.5.4)
41
+ multipart-post (1.2.0)
42
+ net-scp (1.1.1)
43
+ net-ssh (>= 2.6.5)
44
+ net-sftp (2.1.2)
45
+ net-ssh (>= 2.6.5)
46
+ net-ssh (2.6.7)
47
+ net-ssh-gateway (1.2.0)
48
+ net-ssh (>= 2.6.5)
49
+ nokogiri (1.5.10)
50
+ oauth2 (0.9.2)
51
+ faraday (~> 0.8)
52
+ httpauth (~> 0.2)
53
+ jwt (~> 0.1.4)
54
+ multi_json (~> 1.0)
55
+ multi_xml (~> 0.5)
56
+ rack (~> 1.2)
57
+ rack (1.5.2)
58
+ rake (10.1.0)
59
+ rdoc (4.0.1)
60
+ json (~> 1.4)
61
+
62
+ PLATFORMS
63
+ ruby
64
+
65
+ DEPENDENCIES
66
+ bundler (>= 1.3.0)
67
+ capistrano (>= 2.15.5)
68
+ capistrano-base_helper (>= 0.0.3)
69
+ jeweler (~> 1.8.6)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2013 Leif Ringstad
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # Capistrano Recipes for Delayed Job
2
+
3
+ This gem provides recipes for [Delayed Job](https://github.com/collectiveidea/delayed_job) to setup runit and monit
4
+
5
+ ## Usage
6
+
7
+ Add it to your Gemfile without requiring it
8
+
9
+ ```ruby
10
+ gem 'capistrano-delayed_job', require: false
11
+ ```
12
+
13
+ In your deploy.rb:
14
+
15
+ ```ruby
16
+ require 'capistrano-delayed_job'
17
+ ```
18
+
19
+ ### Monit
20
+
21
+ ```ruby
22
+ cap delayed_job:monit:disable # Disable and stop monit services for Delayed Job
23
+ cap delayed_job:monit:enable # Enable monit services for Delayed Job
24
+ cap delayed_job:monit:monitor # Monitor Delayed Job
25
+ cap delayed_job:monit:restart # Restart monit services for Delayed Job
26
+ cap delayed_job:monit:setup # Setup Delayed Job monit-service
27
+ cap delayed_job:monit:start # Start monit services for Delayed Job (will also tr...
28
+ cap delayed_job:monit:stop # Stop monit services for Delayed Job (will also sto...
29
+ cap delayed_job:monit:unmonitor # Purge Delayed Job monit configuration
30
+ ```
31
+
32
+ ### Runit
33
+
34
+ ```ruby
35
+ cap delayed_job:runit:disable # Disable Delayed Job runit-service
36
+ cap delayed_job:runit:enable # Enable Delayed Job runit-service
37
+ cap delayed_job:runit:flush_sockets # Flush delayed_job sockets, as they can end up 'han...
38
+ cap delayed_job:runit:once # Start Delayed Job runit-service only ONCE (no supe...
39
+ cap delayed_job:runit:purge # Purge Delayed Job runit configuration
40
+ cap delayed_job:runit:quit # Quit the Delayed Job runit-service
41
+ cap delayed_job:runit:restart # Restart Delayed Job runit-service
42
+ cap delayed_job:runit:setup # Setup Delayed Job runit-service
43
+ cap delayed_job:runit:start # Start Delayed Job runit-service
44
+ cap delayed_job:runit:stop # Stop Delayed Job runit-service
45
+ ```
46
+
47
+ ## Configuration
48
+
49
+ See delayed_job/config.rb for default options, and ovveride any in your deploy.rb file.
50
+
51
+ ## Contributing
52
+
53
+ * Fork the project
54
+ * Make a feature addition or bug fix
55
+ * Please test the feature or bug fix
56
+ * Make a pull request
57
+
58
+ ## Copyright
59
+
60
+ (c) 2013 Leif Ringstad. See LICENSE for details
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "capistrano-delayed_job"
18
+ gem.homepage = "https://github.com/leifcr/capistrano-delayed_job"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Capistrano recipes for Delayed Job using runit and monit}
21
+ gem.description = %Q{Capistrano recipes for Delayed Job using runit and monit.}
22
+ gem.email = "leifcr@gmail.com"
23
+ gem.authors = ["Leif Ringstad"]
24
+ gem.files.exclude ".ruby-*"
25
+ # dependencies defined in Gemfile
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ # require 'rdoc/task'
30
+ # Rake::RDocTask.new do |rdoc|
31
+ # version = File.exist?('VERSION') ? File.read('VERSION') : ""
32
+
33
+ # rdoc.rdoc_dir = 'rdoc'
34
+ # rdoc.title = "capistrano-empty #{version}"
35
+ # rdoc.rdoc_files.include('README*')
36
+ # rdoc.rdoc_files.include('lib/**/*.rb')
37
+ # end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,11 @@
1
+ def try_require(library)
2
+ begin
3
+ require "#{library}"
4
+ rescue LoadError => e
5
+ puts "Capistrano-Delayed Job: Cannot load library: #{library} Error: #{e}"
6
+ end
7
+ end
8
+
9
+ try_require 'capistrano-delayed_job/config'
10
+ try_require 'capistrano-delayed_job/runit'
11
+ try_require 'capistrano-delayed_job/monit'
@@ -0,0 +1,28 @@
1
+ Capistrano::Configuration.instance(true).load do
2
+ _cset :delayed_job_runit_service_name, "delayed_job"
3
+ _cset :delayed_job_workers, 1 # More than 1 is not implemented yet.
4
+
5
+ _cset :delayed_job_bin, 'bundle exec rake jobs:work'
6
+
7
+ _cset :delayed_job_pid_file, defer {Capistrano::RunitBase::service_pid(fetch(:delayed_job_runit_service_name))}
8
+
9
+ # Logging to path
10
+ _cset :delayed_job_log_path, defer {"/var/log/service/#{fetch(:user)}/#{fetch(:application)}_#{Capistrano::BaseHelper.environment}/delayed_job"}
11
+
12
+ # runit paths
13
+ _cset :delayed_job_runit_local_config, File.join(File.expand_path(File.join(File.dirname(__FILE__),"../templates", "runit", )), "run.erb")
14
+ _cset :delayed_job_runit_control_q, File.join(File.expand_path(File.join(File.dirname(__FILE__),"../templates", "runit")), "control-q.erb")
15
+ _cset :delayed_job_runit_local_log_run, File.join(File.expand_path(File.join(File.dirname(__FILE__),"../templates", "runit")), "log-run.erb")
16
+
17
+ # monit configuration
18
+ _cset :delayed_job_monit_service_name, defer { "#{fetch(:user)}_#{fetch(:application)}_#{Capistrano::BaseHelper.environment}_delayed_job" }
19
+ _cset :delayed_job_monit_start_command, defer {"/bin/bash -c '[ ! -h #{Capistrano::RunitBase.service_path(fetch(:delayed_job_runit_service_name))}/run ] || /usr/bin/sv start #{Capistrano::RunitBase.service_path(fetch(:delayed_job_runit_service_name))}'"}
20
+ _cset :delayed_job_monit_stop_command, defer {"/usr/bin/sv -w 12 force-stop #{Capistrano::RunitBase.service_path(fetch(:delayed_job_runit_service_name))}"}
21
+ _cset :delayed_job_monit_memory_alert_threshold, "45.0 MB for 2 cycles"
22
+ _cset :delayed_job_monit_memory_restart_threshold, "50.0 MB for 3 cycles"
23
+ _cset :delayed_job_monit_cpu_alert_threshold, "90% for 2 cycles"
24
+ _cset :delayed_job_monit_cpu_restart_threshold, "95% for 5 cycles"
25
+
26
+ _cset :delayed_job_local_monit_config, File.join(File.expand_path(File.join(File.dirname(__FILE__),"../templates", "monit")), "delayed_job.conf.erb")
27
+
28
+ end
@@ -0,0 +1,70 @@
1
+ # Delayed Job - Monit
2
+ # Setup and management of Monit for Delayed Job
3
+ #
4
+ require 'capistrano-base_helper/base_helper'
5
+ require 'capistrano-base_helper/monit_base'
6
+
7
+ Capistrano::Configuration.instance(true).load do
8
+ after "monit:setup", "delayed_job:monit:setup"
9
+ after "delayed_job:monit:setup", "delayed_job:monit:enable"
10
+ after "delayed_job:monit:enable", "monit:reload"
11
+
12
+ before "delayed_job:monit.disable", "delayed_job:monit:unmonitor"
13
+ after "delayed_job:monit:disable", "monit:reload"
14
+
15
+ # start service after update in case it has not been stopped
16
+ # after "deploy:update", "delayed_job:monit:start"
17
+ # Not needed?
18
+
19
+ namespace :delayed_job do
20
+ namespace :monit do
21
+ desc "Setup Delayed Job monit-service"
22
+ task :setup, :roles => [:app, :web, :db] do
23
+ # Upload configuration
24
+ Capistrano::BaseHelper::generate_and_upload_config(delayed_job_local_monit_config, File.join(fetch(:monit_available_path), "#{fetch(:delayed_job_runit_service_name)}.conf"))
25
+ # Enable monitor
26
+ end
27
+
28
+ desc "Enable monit services for Delayed Job"
29
+ task :enable, :roles => [:app, :web, :db] do
30
+ Capistrano::MonitBase::Service.enable("#{fetch(:delayed_job_runit_service_name)}.conf")
31
+ end
32
+
33
+ desc "Disable and stop monit services for Delayed Job"
34
+ task :disable, :roles => [:app, :web, :db] do
35
+ Capistrano::MonitBase::Service.disable("#{fetch(:delayed_job_runit_service_name)}.conf")
36
+ end
37
+
38
+ desc "Start monit services for Delayed Job (will also try to start the service)"
39
+ task :start, :roles => [:app, :web, :db] do
40
+ Capistrano::MonitBase::Service.command_monit("start", fetch(:delayed_job_monit_service_name))
41
+ end
42
+
43
+ desc "Stop monit services for Delayed Job (will also stop the service)"
44
+ task :stop, :roles => [:app, :web, :db] do
45
+ Capistrano::MonitBase::Service.command_monit("stop", fetch(:delayed_job_monit_service_name))
46
+ end
47
+
48
+ desc "Restart monit services for Delayed Job"
49
+ task :restart, :roles => [:app, :web, :db] do
50
+ Capistrano::MonitBase::Service.command_monit("restart", fetch(:delayed_job_monit_service_name))
51
+ end
52
+
53
+ desc "Monitor Delayed Job"
54
+ task :monitor, :roles => [:app, :web, :db] do
55
+ Capistrano::MonitBase::Service.command_monit("monitor", fetch(:delayed_job_monit_service_name))
56
+ end
57
+
58
+ desc "Unmonitor Delayed Job"
59
+ task :unmonitor, :roles => [:app, :web, :db] do
60
+ Capistrano::MonitBase::Service.command_monit("unmonitor", fetch(:delayed_job_monit_service_name))
61
+ end
62
+
63
+ desc "Purge Delayed Job monit configuration"
64
+ task :unmonitor, :roles => [:app, :web, :db], :on_error => :continue do
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+ end
@@ -0,0 +1,80 @@
1
+ # Delayed Job - Runit
2
+
3
+ require 'capistrano-base_helper/base_helper'
4
+ require 'capistrano-base_helper/runit_base'
5
+
6
+ Capistrano::Configuration.instance(true).load do
7
+ after "deploy:setup", "delayed_job:runit:setup"
8
+
9
+ # enable service after update in case it has not been setup or is disabled
10
+ # Service should probably be started as well?
11
+ after "deploy:update", "delayed_job:runit:enable"
12
+ after "delayed_job:runit:quit", "delayed_job:runit:stop"
13
+
14
+ namespace :delayed_job do
15
+ namespace :runit do
16
+ desc "Setup Delayed Job runit-service"
17
+ task :setup, :roles => :app do
18
+ # Create runit config
19
+ Capistrano::RunitBase.create_service_dir(delayed_job_runit_service_name)
20
+ Capistrano::BaseHelper::generate_and_upload_config(delayed_job_runit_local_config, Capistrano::RunitBase.remote_run_config_path(delayed_job_runit_service_name))
21
+ # must use quit script for stop as well
22
+ # Capistrano::BaseHelper::generate_and_upload_config(delayed_job_runit_control_q, Capistrano::RunitBase.remote_control_path(delayed_job_runit_service_name, "q"))
23
+ # Capistrano::BaseHelper::generate_and_upload_config(delayed_job_runit_control_q, Capistrano::RunitBase.remote_control_path(delayed_job_runit_service_name, "s"))
24
+
25
+ # Log run script
26
+ Capistrano::BaseHelper::generate_and_upload_config(delayed_job_runit_local_log_run, Capistrano::RunitBase.remote_service_log_run_path(delayed_job_runit_service_name))
27
+
28
+ # Make scripts executable
29
+ Capistrano::RunitBase.make_service_scripts_executeable(delayed_job_runit_service_name)
30
+
31
+ # Set correct permissions/owner on log path
32
+ Capistrano::RunitBase.create_and_permissions_on_path(fetch(:delayed_job_log_path))
33
+ end
34
+
35
+ desc "Enable Delayed Job runit-service"
36
+ task :enable, :roles => :app do
37
+ Capistrano::RunitBase.enable_service(delayed_job_runit_service_name)
38
+ end
39
+
40
+ desc "Disable Delayed Job runit-service"
41
+ task :disable, :roles => :app do
42
+ Capistrano::RunitBase.disable_service(delayed_job_runit_service_name)
43
+ end
44
+
45
+ desc "Start Delayed Job runit-service"
46
+ task :start, :roles => :app do
47
+ Capistrano::RunitBase.start_service(delayed_job_runit_service_name)
48
+ end
49
+
50
+ desc "Start Delayed Job runit-service only ONCE (no supervision...)"
51
+ task :once, :roles => :app do
52
+ Capistrano::RunitBase.start_service_once(delayed_job_runit_service_name)
53
+ end
54
+
55
+ desc "Stop Delayed Job runit-service"
56
+ task :stop, :roles => :app, :on_error => :continue do
57
+ # have to use force-stop on failed stop, since delayed_job might not terminate properly
58
+ # will wait 25 seconds for delayed_job to shut down, to allow it to serve any on-going requests
59
+ Capistrano::RunitBase.control_service(delayed_job_runit_service_name, "force-stop", false, "-w 25")
60
+ end
61
+
62
+ desc "Quit the Delayed Job runit-service"
63
+ task :quit, :roles => :app, :on_error => :continue do
64
+ Capistrano::RunitBase.control_service(delayed_job_runit_service_name, "quit")
65
+ end
66
+
67
+ desc "Restart Delayed Job runit-service"
68
+ task :restart, :roles => :app do
69
+ Capistrano::RunitBase.control_service(delayed_job_runit_service_name, "restart")
70
+ end
71
+
72
+ desc "Purge Delayed Job runit configuration"
73
+ task :purge, :roles => :app, :on_error => :continue do
74
+ Capistrano::RunitBase.force_control_service(delayed_job_runit_service_name, "force-stop", true)
75
+ Capistrano::RunitBase.purge_service(delayed_job_runit_service_name)
76
+ end
77
+
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,16 @@
1
+ # Monit configuration for Delayed Job
2
+ # <% c = Capistrano::BaseHelper::get_capistrano_instance %>
3
+ # <%= "#{c.fetch(:application)} running as #{c.fetch(:user)} in environment #{Capistrano::BaseHelper.environment}" %>
4
+ #
5
+ # Service name: <%= c.fetch(:delayed_job_monit_service_name) %>
6
+ #
7
+ check process <%= c.fetch(:delayed_job_monit_service_name) %>
8
+ with pidfile <%= c.fetch(:delayed_job_pid_file) %>
9
+ start program = "<%= c.fetch(:delayed_job_monit_start_command) %>"
10
+ stop program = "<%= c.fetch(:delayed_job_monit_stop_command) %>"
11
+ <%= "if mem is greater than #{c.fetch(:delayed_job_monit_memory_alert_threshold)} then alert" unless c.fetch(:delayed_job_monit_memory_alert_threshold).nil? %>
12
+ <%= "if mem is greater than #{c.fetch(:delayed_job_monit_memory_restart_threshold)} then restart" unless c.fetch(:delayed_job_monit_memory_restart_threshold).nil? %>
13
+ <%= "if cpu is greater than #{c.fetch(:delayed_job_monit_cpu_alert_threshold)} then alert" unless c.fetch(:delayed_job_monit_cpu_alert_threshold).nil? %>
14
+ <%= "if cpu is greater than #{c.fetch(:delayed_job_monit_cpu_restart_threshold)} then restart" unless c.fetch(:delayed_job_monit_cpu_restart_threshold).nil? %>
15
+
16
+ group <%= c.fetch(:monit_application_group_name) %>
@@ -0,0 +1,10 @@
1
+ #!/bin/sh -e
2
+ <% c = Capistrano::BaseHelper::get_capistrano_instance %>
3
+ # Log output for delayed_job running on <%= c.fetch(:application) %> running as <%= c.fetch(:user) %>
4
+ # make sure the log directory exists
5
+ mkdir -p "<%= c.fetch(:delayed_job_log_path) %>"
6
+ # change path to the log directory
7
+ cd "<%= c.fetch(:delayed_job_log_path) %>"
8
+ # start logging
9
+ # exec chpst -u syslog svlogd -tt "<%= c.fetch(:delayed_job_log_path) %>"
10
+ exec svlogd -tt "<%= c.fetch(:delayed_job_log_path) %>"
@@ -0,0 +1,6 @@
1
+ #!/bin/bash --login
2
+ # Start delayed job using rake
3
+ <% c = Capistrano::BaseHelper::get_capistrano_instance %>
4
+ cd '<%= c.current_path %>'
5
+ exec 2>&1
6
+ RAILS_ENV=<%= Capistrano::BaseHelper.environment %> exec <%= c.fetch(:delayed_job_bin) %>
metadata ADDED
@@ -0,0 +1,127 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano-delayed_job
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Leif Ringstad
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-07-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: capistrano
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.15.5
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.15.5
30
+ - !ruby/object:Gem::Dependency
31
+ name: capistrano-base_helper
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.0.3
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.0.3
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.3.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: jeweler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 1.8.6
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.8.6
78
+ description: Capistrano recipes for Delayed Job using runit and monit.
79
+ email: leifcr@gmail.com
80
+ executables: []
81
+ extensions: []
82
+ extra_rdoc_files:
83
+ - LICENSE
84
+ - README.md
85
+ files:
86
+ - Gemfile
87
+ - Gemfile.lock
88
+ - LICENSE
89
+ - README.md
90
+ - Rakefile
91
+ - VERSION
92
+ - capistrano-delayed_job.rb
93
+ - capistrano-delayed_job/config.rb
94
+ - capistrano-delayed_job/monit.rb
95
+ - capistrano-delayed_job/runit.rb
96
+ - templates/monit/delayed_job.conf.erb
97
+ - templates/runit/log-run.erb
98
+ - templates/runit/run.erb
99
+ homepage: https://github.com/leifcr/capistrano-delayed_job
100
+ licenses:
101
+ - MIT
102
+ post_install_message:
103
+ rdoc_options: []
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ segments:
113
+ - 0
114
+ hash: -1879143255629248842
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ requirements: []
122
+ rubyforge_project:
123
+ rubygems_version: 1.8.25
124
+ signing_key:
125
+ specification_version: 3
126
+ summary: Capistrano recipes for Delayed Job using runit and monit
127
+ test_files: []