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 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,2 @@
1
+ #!/usr/bin/env ruby
2
+ Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each {|f| `#{f} #{ARGV.first}`}
@@ -0,0 +1,5 @@
1
+ dir_mode: script
2
+ dir: ../../log
3
+ multiple: false
4
+ backtrace: true
5
+ monitor: true
@@ -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
+