khelben-daemon_generator 0.1.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/.gitignore +1 -0
- data/README +14 -0
- data/Rakefile +14 -0
- data/VERSION +1 -0
- data/daemon_generator.gemspec +45 -0
- data/generators/daemon/daemon_generator.rb +11 -0
- data/generators/daemon/templates/daemons +2 -0
- data/generators/daemon/templates/daemons.yml +5 -0
- data/generators/daemon/templates/script.rb +19 -0
- data/generators/daemon/templates/script_ctl +25 -0
- data/install.rb +1 -0
- metadata +64 -0
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg
|
data/README
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
Daemon Generator
|
2
|
+
================
|
3
|
+
|
4
|
+
To get yourself rolling:
|
5
|
+
> sudo gem install daemons
|
6
|
+
> ./script/generate daemon <name>
|
7
|
+
|
8
|
+
Then insert your code in the lib/daemons/<name>.rb stub. All pid's and logs will live in the normal log/ folder. This helps to make things Capistrano friendly.
|
9
|
+
|
10
|
+
Individual control script:
|
11
|
+
> ./lib/daemons/<name>_ctl [start|stop|restart]
|
12
|
+
|
13
|
+
App-wide control script (I add this to my capistrano recipe's after_restart task):
|
14
|
+
> ./script/daemons [start|stop|restart]
|
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
begin
|
2
|
+
require 'jeweler'
|
3
|
+
Jeweler::Tasks.new do |gemspec|
|
4
|
+
gemspec.name = "daemon_generator"
|
5
|
+
gemspec.summary = "A plugin for creating psuedo-scheduled jobs in Ruby on Rails."
|
6
|
+
gemspec.description = "A plugin for creating psuedo-scheduled jobs in Ruby on Rails."
|
7
|
+
gemspec.homepage = "http://douglasfshearer.com/blog/cron-jobs-in-ruby-on-rails"
|
8
|
+
gemspec.description = "This is the generator for daemons support in rails"
|
9
|
+
gemspec.authors = ["Joshua Moore", "dougal"]
|
10
|
+
end
|
11
|
+
rescue LoadError
|
12
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
13
|
+
end
|
14
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.1
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{daemon_generator}
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Joshua Moore", "dougal"]
|
12
|
+
s.date = %q{2009-09-09}
|
13
|
+
s.description = %q{This is the generator for daemons support in rails}
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"README"
|
16
|
+
]
|
17
|
+
s.files = [
|
18
|
+
".gitignore",
|
19
|
+
"README",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION",
|
22
|
+
"daemon_generator.gemspec",
|
23
|
+
"generators/daemon/daemon_generator.rb",
|
24
|
+
"generators/daemon/templates/daemons",
|
25
|
+
"generators/daemon/templates/daemons.yml",
|
26
|
+
"generators/daemon/templates/script.rb",
|
27
|
+
"generators/daemon/templates/script_ctl",
|
28
|
+
"install.rb"
|
29
|
+
]
|
30
|
+
s.homepage = %q{http://douglasfshearer.com/blog/cron-jobs-in-ruby-on-rails}
|
31
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
32
|
+
s.require_paths = ["lib"]
|
33
|
+
s.rubygems_version = %q{1.3.5}
|
34
|
+
s.summary = %q{A plugin for creating psuedo-scheduled jobs in Ruby on Rails.}
|
35
|
+
|
36
|
+
if s.respond_to? :specification_version then
|
37
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
38
|
+
s.specification_version = 3
|
39
|
+
|
40
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
41
|
+
else
|
42
|
+
end
|
43
|
+
else
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class DaemonGenerator < Rails::Generator::NamedBase
|
2
|
+
def manifest
|
3
|
+
record do |m|
|
4
|
+
m.directory "lib/daemons"
|
5
|
+
m.file "daemons", "script/daemons", :chmod => 0755
|
6
|
+
m.template "script.rb", "lib/daemons/#{file_name}.rb", :chmod => 0755
|
7
|
+
m.template "script_ctl", "lib/daemons/#{file_name}_ctl", :chmod => 0755
|
8
|
+
m.file "daemons.yml", "config/daemons.yml"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# You might want to change this
|
4
|
+
ENV["RAILS_ENV"] ||= "production"
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + "/../../config/environment"
|
7
|
+
|
8
|
+
$running = true
|
9
|
+
Signal.trap("TERM") do
|
10
|
+
$running = false
|
11
|
+
end
|
12
|
+
|
13
|
+
while($running) do
|
14
|
+
|
15
|
+
# Replace this with your code
|
16
|
+
ActiveRecord::Base.logger.info "This daemon is still running at #{Time.now}.\n"
|
17
|
+
|
18
|
+
sleep 10
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require "daemons"
|
4
|
+
require 'yaml'
|
5
|
+
require 'erb'
|
6
|
+
|
7
|
+
file_name = File.dirname(__FILE__) + "/../../vendor/rails/activesupport/lib/active_support.rb"
|
8
|
+
|
9
|
+
if(File.exists?(file_name))
|
10
|
+
require file_name
|
11
|
+
else
|
12
|
+
rails_version = File.new(File.dirname(__FILE__)+ "/../../config/environment.rb").read.scan(/^ *RAILS_GEM_VERSION.*=.*['|"](.*)['|"]/)[0].to_s
|
13
|
+
|
14
|
+
gem 'activesupport', rails_version
|
15
|
+
require 'active_support'
|
16
|
+
end
|
17
|
+
|
18
|
+
options = YAML.load(
|
19
|
+
ERB.new(
|
20
|
+
IO.read(
|
21
|
+
File.dirname(__FILE__) + "/../../config/daemons.yml"
|
22
|
+
)).result).with_indifferent_access
|
23
|
+
options[:dir_mode] = options[:dir_mode].to_sym
|
24
|
+
|
25
|
+
Daemons.run File.dirname(__FILE__) + '/<%=file_name%>.rb', options
|
data/install.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
puts IO.read(File.join(File.dirname(__FILE__), 'README'))
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: khelben-daemon_generator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joshua Moore
|
8
|
+
- dougal
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2009-09-09 00:00:00 -07:00
|
14
|
+
default_executable:
|
15
|
+
dependencies: []
|
16
|
+
|
17
|
+
description: This is the generator for daemons support in rails
|
18
|
+
email:
|
19
|
+
executables: []
|
20
|
+
|
21
|
+
extensions: []
|
22
|
+
|
23
|
+
extra_rdoc_files:
|
24
|
+
- README
|
25
|
+
files:
|
26
|
+
- .gitignore
|
27
|
+
- README
|
28
|
+
- Rakefile
|
29
|
+
- VERSION
|
30
|
+
- daemon_generator.gemspec
|
31
|
+
- generators/daemon/daemon_generator.rb
|
32
|
+
- generators/daemon/templates/daemons
|
33
|
+
- generators/daemon/templates/daemons.yml
|
34
|
+
- generators/daemon/templates/script.rb
|
35
|
+
- generators/daemon/templates/script_ctl
|
36
|
+
- install.rb
|
37
|
+
has_rdoc: false
|
38
|
+
homepage: http://douglasfshearer.com/blog/cron-jobs-in-ruby-on-rails
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options:
|
41
|
+
- --charset=UTF-8
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: "0"
|
49
|
+
version:
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: "0"
|
55
|
+
version:
|
56
|
+
requirements: []
|
57
|
+
|
58
|
+
rubyforge_project:
|
59
|
+
rubygems_version: 1.2.0
|
60
|
+
signing_key:
|
61
|
+
specification_version: 3
|
62
|
+
summary: A plugin for creating psuedo-scheduled jobs in Ruby on Rails.
|
63
|
+
test_files: []
|
64
|
+
|