daemon-kit 0.1.7.10 → 0.1.7.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/.gitignore +5 -0
  2. data/Configuration.txt +8 -0
  3. data/History.txt +13 -1
  4. data/Logging.txt +4 -0
  5. data/Manifest.txt +7 -1
  6. data/PostInstall.txt +1 -1
  7. data/README.rdoc +9 -13
  8. data/Rakefile +22 -30
  9. data/TODO.txt +1 -10
  10. data/app_generators/daemon_kit/daemon_kit_generator.rb +18 -1
  11. data/app_generators/daemon_kit/templates/config/boot.rb +6 -15
  12. data/app_generators/daemon_kit/templates/config/environments/production.rb +3 -0
  13. data/bin/{daemon_kit → daemon-kit} +0 -0
  14. data/config/website.yml +2 -0
  15. data/daemon-kit.gemspec +264 -0
  16. data/daemon_generators/nanite_agent/templates/config/nanite.yml +2 -2
  17. data/daemon_generators/rspec/templates/spec/spec_helper.rb +3 -1
  18. data/daemon_generators/rspec/templates/tasks/rspec.rake +8 -10
  19. data/daemon_generators/test_unit/USAGE +5 -0
  20. data/daemon_generators/test_unit/templates/tasks/test_unit.rake +7 -0
  21. data/daemon_generators/test_unit/templates/test/test.rb +9 -0
  22. data/daemon_generators/test_unit/templates/test/test_helper.rb +6 -0
  23. data/daemon_generators/test_unit/test_unit_generator.rb +51 -0
  24. data/lib/daemon_kit.rb +9 -1
  25. data/lib/daemon_kit/abstract_logger.rb +6 -0
  26. data/lib/daemon_kit/application.rb +1 -0
  27. data/lib/daemon_kit/arguments.rb +5 -0
  28. data/lib/daemon_kit/error_handlers/hoptoad.rb +4 -4
  29. data/lib/daemon_kit/exceptions.rb +7 -0
  30. data/lib/daemon_kit/initializer.rb +25 -11
  31. data/lib/daemon_kit/nanite/agent.rb +26 -5
  32. data/lib/daemon_kit/ruote_workitem.rb +9 -1
  33. data/lib/daemon_kit/tasks/god.rake +1 -1
  34. data/lib/daemon_kit/xmpp.rb +31 -0
  35. data/tasks/cucumber.rake +13 -0
  36. data/tasks/tests.rake +6 -0
  37. data/templates/god/god.erb +2 -2
  38. data/test/test_ruote_generator.rb +8 -2
  39. data/test/test_test_unit_generator.rb +46 -0
  40. metadata +45 -36
@@ -0,0 +1,5 @@
1
+ *#*
2
+ pkg/
3
+ tmp/
4
+ doc/
5
+ *.swp
@@ -96,7 +96,15 @@ Things to note on privilege separation:
96
96
  * File system permissions for +log/+ needs to be correct
97
97
  * Daemon-kit will only shed privileges on the +start+ command, not on +run+
98
98
  * Make sure your code is secure if accepting stuff from the outside world
99
+ * The daemon will continue to run if it failed, this is because the feature is experimental and could change in the future.
100
+ * The damon logs the reduced privileges in the log file shortly after booting, please check it carefully
99
101
 
100
102
  The implementation stems from the advice given by Joe Damato on his blog post
101
103
  http://timetobleed.com/tag/privilege-escalation/
102
104
 
105
+ IMPORTANT NOTE FOR OSX USERS:
106
+
107
+ Testing on my iBook with OSX 10.5.8 using Ruby 1.8.6-p287 failed to drop
108
+ privileges correctly because of the 'nobody' user's UID being too large
109
+ (Bignum), however testing with Ruby 1.9.1-p129 on OSX 10.5.8 did work as
110
+ expected.
@@ -1,4 +1,16 @@
1
- == 0.1.7.10 (WIP)
1
+ == 0.2 (WIP)
2
+
3
+ * Renamed 'daemon_kit' executable to 'daemon-kit'
4
+ * Fixed some broken links in README.rdoc
5
+ * Sneaked in << on AbstractLogger for better Logger compatibility
6
+ * Support for Test::Unit in generated projects [skaar]
7
+ * Fixed missing DAEMON_ENV for test helpers
8
+ * Fixes for nanite configuration [skaar]
9
+ * Toughened up the ruote workitem parser
10
+ * Fixed issue with nanite services not being advertised correctly [Wijnand]
11
+ * Fixed some woes with rake if rspec gem is missing
12
+
13
+ == 0.1.7.10 2009-08-12
2
14
 
3
15
  * Ruote remote participants
4
16
  * Allow process umask to be configured, defaults to 022
@@ -48,6 +48,10 @@ using the silence helper:
48
48
  # logger will only report :error or higher levels
49
49
  end
50
50
 
51
+ You can also set the logging per environment by editing the correct file in <em>config/environments</em>
52
+
53
+ config.log_level = :debug
54
+
51
55
  === Changing log levels via UNIX signals
52
56
 
53
57
  Send your process the +USR1+ signal to toggle between <em>:debug</em>
@@ -26,7 +26,7 @@ app_generators/daemon_kit/templates/libexec/daemon.erb
26
26
  app_generators/daemon_kit/templates/script/console
27
27
  app_generators/daemon_kit/templates/script/destroy
28
28
  app_generators/daemon_kit/templates/script/generate
29
- bin/daemon_kit
29
+ bin/daemon-kit
30
30
  daemon_generators/amqp/USAGE
31
31
  daemon_generators/amqp/amqp_generator.rb
32
32
  daemon_generators/amqp/templates/config/amqp.yml
@@ -74,6 +74,11 @@ daemon_generators/ruote/templates/config/ruote.yml
74
74
  daemon_generators/ruote/templates/lib/daemon.rb
75
75
  daemon_generators/ruote/templates/lib/sample.rb
76
76
  daemon_generators/ruote/templates/libexec/daemon.rb
77
+ daemon_generators/test_unit/USAGE
78
+ daemon_generators/test_unit/templates/tasks/test_unit.rake
79
+ daemon_generators/test_unit/templates/test/test.rb
80
+ daemon_generators/test_unit/templates/test/test_helper.rb
81
+ daemon_generators/test_unit/test_unit_generator.rb
77
82
  lib/daemon_kit.rb
78
83
  lib/daemon_kit/abstract_logger.rb
79
84
  lib/daemon_kit/amqp.rb
@@ -136,6 +141,7 @@ test/test_helper.rb
136
141
  test/test_jabber_generator.rb
137
142
  test/test_nanite_agent_generator.rb
138
143
  test/test_ruote_generator.rb
144
+ test/test_test_unit_generator.rb
139
145
  vendor/tmail-1.2.3/tmail.rb
140
146
  vendor/tmail-1.2.3/tmail/address.rb
141
147
  vendor/tmail-1.2.3/tmail/attachments.rb
@@ -1,6 +1,6 @@
1
1
 
2
2
  For more information on daemon-kit, see http://kit.rubyforge.org/daemon-kit
3
3
 
4
- To get started quickly run 'daemon_kit' without any arguments
4
+ To get started quickly run 'daemon-kit' without any arguments
5
5
 
6
6
 
@@ -26,15 +26,15 @@ Supported generators:
26
26
 
27
27
  == Synopsis
28
28
 
29
- $ daemon_kit -h
29
+ $ daemon-kit -h
30
30
 
31
31
  Get some help
32
32
 
33
- $ daemon_kit [/path/to/your/daemon] [options]
33
+ $ daemon-kit [/path/to/your/daemon] [options]
34
34
 
35
35
  The above command generates a skeleton daemon environment for you to adapt.
36
36
 
37
- $ daemon_kit [/path/to/your/daemon] -i jabber
37
+ $ daemon-kit [/path/to/your/daemon] -i jabber
38
38
 
39
39
  Use the 'jabber' generator instead of the default one.
40
40
 
@@ -46,23 +46,23 @@ The default generator creates a simple daemon with an infinite loop inside that
46
46
 
47
47
  === Jabber Generator
48
48
 
49
- The jabber generator creates a simple daemon that leverages the "xmpp4r-simple":http://xmpp4r-simple.rubyforge.org/ gem to process inbound messages. The daemon will manage the roster and other little tasks, leaving you to provide the hooks for processing messages, presence notifications and subscription request.
49
+ The jabber generator creates a simple daemon that leverages the xmpp4r-simple[http://xmpp4r-simple.rubyforge.org/] gem to process inbound messages. The daemon will manage the roster and other little tasks, leaving you to provide the hooks for processing messages, presence notifications and subscription request.
50
50
 
51
51
  === Cron Generator
52
52
 
53
- The cron generator creates a simple daemon that leverages the "rufus-scheduler":http://github.com/jmettraux/rufus-scheduler gem to create a simple cron-lie daemon. Please be aware that this daemon could never be a replacement for the battle-tested "cron utility":http://www.gentoo.org/doc/en/cron-guide.xml shipped standard with most *nix distributions.
53
+ The cron generator creates a simple daemon that leverages the rufus-scheduler[http://github.com/jmettraux/rufus-scheduler] gem to create a simple cron-lie daemon. Please be aware that this daemon could never be a replacement for the battle-tested cron[http://www.gentoo.org/doc/en/cron-guide.xml] utility shipped standard with most *nix distributions.
54
54
 
55
55
  === AMQP Consumer Generator
56
56
 
57
- The AMQP generator creates a simple daemon that has all the stub code and configuration in place to help you write AMQP consumers quickly and effectively. The generated daemon relies on the presence of the "amqp":http://github.com/tmm1/amqp gem.
57
+ The AMQP generator creates a simple daemon that has all the stub code and configuration in place to help you write AMQP consumers quickly and effectively. The generated daemon relies on the presence of the amqp[http://github.com/tmm1/amqp] gem.
58
58
 
59
59
  === Nanite Agent Generator
60
60
 
61
- The "nanite":http://github.com/ezmobius/nanite agent generator gets you up and running with nanite agents very quickly.
61
+ The nanite[http://github.com/ezmobius/nanite] agent generator gets you up and running with nanite agents very quickly.
62
62
 
63
63
  === ruote Remote Participants
64
64
 
65
- The "ruote":http://openwfe.rubyforge.org remote participant generator speeds up the development of workflow participants that run outside of the Ruby process that houses the engine. Daemon-kit handles all the communication and delegation logic, allowing you to focus purely on your participant's activities.
65
+ The ruote[http://openwfe.rubyforge.org] remote participant generator speeds up the development of workflow participants that run outside of the Ruby process that houses the engine. Daemon-kit handles all the communication and delegation logic, allowing you to focus purely on your participant's activities.
66
66
 
67
67
  == Requirements
68
68
 
@@ -88,11 +88,7 @@ Currently recommended to stick to the git repo:
88
88
  $ rake gem
89
89
  $ gem install pkg/daemon-kit-X.X.X.gem
90
90
 
91
- Development versions are available as gems from github:
92
-
93
- $ gem install kennethkalmer-daemon-kit -s http://gems.github.com
94
-
95
- Stable versions, when released are available directly from Rubyforge:
91
+ Stable versions, when released are available directly from Gemcutter:
96
92
 
97
93
  $ gem install daemon-kit
98
94
 
data/Rakefile CHANGED
@@ -1,37 +1,29 @@
1
- require 'rubygems'
2
- gem 'hoe', '>= 2.1.0'
3
- require 'hoe'
4
- require 'fileutils'
5
- require File.dirname(__FILE__) + '/lib/daemon_kit'
1
+ Dir['tasks/**/*.rake'].each { |t| load t }
6
2
 
7
- Hoe.plugin :newgem
8
- Hoe.plugin :website
9
- # Hoe.plugin :cucumberfeatures
3
+ require File.dirname(__FILE__) + '/lib/daemon_kit'
10
4
 
11
- # Generate all the Rake tasks
12
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
- $hoe = Hoe.spec('daemon-kit') do |p|
14
- p.summary = 'Daemon Kit aims to simplify creating Ruby daemons by providing a sound application skeleton (through a generator), task specific generators (jabber bot, etc) and robust environment management code.'
15
- p.developer('Kenneth Kalmer', 'kenneth.kalmer@gmail.com')
16
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
17
- p.post_install_message = IO.read( 'PostInstall.txt' ) # TODO remove if post-install message not required
18
- p.rubyforge_name = 'kit' # TODO this is default value
19
- p.extra_deps = [
20
- ['rubigen', '>= 1.5.2'],
21
- ['eventmachine', '>=0.12.8']
22
- ]
23
- p.extra_dev_deps = [
24
- ['newgem', ">= #{::Newgem::VERSION}"]
25
- ]
5
+ begin
6
+ require 'jeweler'
7
+ Jeweler::Tasks.new do |gemspec|
8
+ gemspec.name = 'daemon-kit'
9
+ gemspec.version = DaemonKit::VERSION
10
+ gemspec.summary = 'Opinionated framework for Ruby daemons'
11
+ gemspec.description = 'daemon-kit aims to simplify creating Ruby daemons by providing a sound application skeleton (through a generator), task specific generators (jabber bot, etc) and robust environment management code.'
12
+ gemspec.email = 'kenneth.kalmer@gmail.com'
13
+ gemspec.homepage = 'http://github.com/kennethkalmer/daemon-kit'
14
+ gemspec.authors = ['kenneth.kalmer@gmail.com']
15
+ gemspec.post_install_message = IO.read('PostInstall.txt')
16
+ gemspec.extra_rdoc_files.include '*.txt'
26
17
 
27
- p.clean_globs |= %w[**/.DS_Store tmp *.log]
28
- path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
29
- p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
30
- p.rsync_args = '-av --delete --ignore-errors'
18
+ gemspec.add_dependency 'eventmachine', '>=0.12.8'
19
+ gemspec.add_dependency 'rubigen', '>=1.5.2'
20
+ gemspec.add_development_dependency 'rspec'
21
+ gemspec.add_development_dependency 'cucumber'
22
+ end
23
+ Jeweler::GemcutterTasks.new
24
+ rescue LoadError
25
+ puts "Jeweler not available. Install it with 'gem install jeweler'"
31
26
  end
32
27
 
33
- require 'newgem/tasks' # load /tasks/*.rake
34
- Dir['tasks/**/*.rake'].each { |t| load t }
35
-
36
28
  # TODO - want other tests/tasks run by default? Add them to the list
37
29
  task :default => [:spec] #, :features]
data/TODO.txt CHANGED
@@ -2,19 +2,13 @@
2
2
 
3
3
  This is purely a drop in the bucket of what has to come...
4
4
 
5
- == Eye on 0.2
6
-
7
- * Support for dropping privileges
8
5
  * Support for chroot'ing
9
6
  * Altering process names (fully and temporary appending)
10
7
  * bleak_house support
11
8
  * Support for tweaking REE environment variables prior to launch (bash wrapper)
12
9
  * Clustering support (run multiple workers out of same project)
13
- * Full 1.9 support in the framework
14
-
15
- == Later
16
-
17
10
  * [IN PROGRESS] Error handling to the degree Rails does
11
+ * Support for custom error handlers in the project
18
12
  * Easy configuration of an ORM of choice, including patching it if needed (ActiveRecord *cough*)
19
13
  * Improved generators for creating skeleton daemons:
20
14
  * Evented jabber bot
@@ -28,10 +22,7 @@ This is purely a drop in the bucket of what has to come...
28
22
  * Integration tests for the specific daemons
29
23
  * Some level of thread safety, or mechanisms to ease thread safety
30
24
  * Built in utilities:
31
- * Thread pool for 1.8
32
25
  * Fibre pool for 1.9
33
26
  * Some activesupport-esque functions until activesupport 3.0 hits the streets
34
27
  * DRY up the following:
35
28
  * Loading configuration files for the daemons
36
-
37
- * DON'T FORGET 1.9 SUPPORT
@@ -7,12 +7,15 @@ class DaemonKitGenerator < RubiGen::Base
7
7
 
8
8
  DEPLOYERS = ['none', 'capistrano']
9
9
 
10
+ TEST_FRAMEWORKS = [ 'rspec', 'test_unit' ]
11
+
10
12
  default_options :shebang => DEFAULT_SHEBANG, :author => nil
11
13
 
12
14
  attr_reader :daemon_name
13
15
  attr_reader :installer
14
16
  attr_reader :deployer
15
17
  attr_reader :cucumber
18
+ attr_reader :test_framework
16
19
 
17
20
  def initialize(runtime_args, runtime_options = {})
18
21
  super
@@ -88,7 +91,13 @@ class DaemonKitGenerator < RubiGen::Base
88
91
  m.directory "tasks"
89
92
 
90
93
  # Tests
91
- m.dependency "rspec", [daemon_name], :destination => destination_root, :collision => :force
94
+ case test_framework
95
+ when 'rspec'
96
+ m.dependency "rspec", [daemon_name], :destination => destination_root, :collision => :force
97
+ when 'test_unit'
98
+ m.dependency "test_unit", [daemon_name], :destination => destination_root, :collision => :force
99
+ end
100
+
92
101
  if cucumber
93
102
  m.dependency "cucumber", [], :destination => destination_root, :collision => :force
94
103
  end
@@ -137,6 +146,13 @@ EOS
137
146
  options[:deployer] = deploy
138
147
  end
139
148
 
149
+ opts.on("-T", "--test-with=type", String,
150
+ "Select your test framework.",
151
+ "Available test framworks: #{TEST_FRAMEWORKS.join(', ')}",
152
+ "Defaults to: rspec") do |test|
153
+ options[:test_framework] = test
154
+ end
155
+
140
156
  opts.on("--cucumber",
141
157
  "Install cucumber.") do
142
158
  options[:cucumber] = true
@@ -156,6 +172,7 @@ EOS
156
172
  @installer = options[:installer] || 'default'
157
173
  @deployer = (options[:deployer] || 'none').strip
158
174
  @cucumber = options[:cucumber] || false
175
+ @test_framework = options[:test_framework] || 'rspec'
159
176
  end
160
177
 
161
178
  end
@@ -40,26 +40,17 @@ module DaemonKit
40
40
  class GemBoot < Boot
41
41
  def load_initializer
42
42
  begin
43
- require 'rubygems'
44
- gem 'kennethkalmer-daemon-kit'
43
+ gem 'daemon-kit'
45
44
  require 'daemon_kit/initializer'
46
- rescue Gem::LoadError
47
- begin
48
- gem 'daemon-kit'
49
- require 'daemon_kit/initializer'
50
- rescue Gem::LoadError => e
51
- msg = <<EOF
52
- You are missing the daemon-kit gem. Please install one of the following gems:
45
+ rescue Gem::LoadError => e
46
+ msg = <<EOF
47
+ You are missing the daemon-kit gem. Please install the following gems:
53
48
 
54
- * Unstable - sudo gem install kennethkalmer-daemon-kit -s http://gems.github.com/
55
49
  * Stable - sudo gem install daemon-kit
56
50
 
57
- NOTE: The 'unstable' gem is loaded first, before falling back to the stable gem!
58
-
59
51
  EOF
60
- $stderr.puts msg
61
- exit 1
62
- end
52
+ $stderr.puts msg
53
+ exit 1
63
54
  end
64
55
  end
65
56
  end
@@ -1,2 +1,5 @@
1
1
  # This is the same context as the environment.rb file, it is only
2
2
  # loaded afterwards and only in the production environment
3
+
4
+ # Change the production log level to debug
5
+ #config.log_level = :debug
File without changes
@@ -0,0 +1,2 @@
1
+ host: kennethkalmer@rubyforge.org
2
+ remote_dir: /var/www/gforge-projects/kit/daemon-kit/
@@ -0,0 +1,264 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{daemon-kit}
8
+ s.version = "0.1.7.11"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["kenneth.kalmer@gmail.com"]
12
+ s.date = %q{2009-11-30}
13
+ s.default_executable = %q{daemon-kit}
14
+ s.description = %q{daemon-kit aims to simplify creating Ruby daemons by providing a sound application skeleton (through a generator), task specific generators (jabber bot, etc) and robust environment management code.}
15
+ s.email = %q{kenneth.kalmer@gmail.com}
16
+ s.executables = ["daemon-kit"]
17
+ s.extra_rdoc_files = [
18
+ "Configuration.txt",
19
+ "Deployment.txt",
20
+ "History.txt",
21
+ "Logging.txt",
22
+ "Manifest.txt",
23
+ "PostInstall.txt",
24
+ "README.rdoc",
25
+ "RuoteParticipants.txt",
26
+ "TODO.txt"
27
+ ]
28
+ s.files = [
29
+ ".gitignore",
30
+ "Configuration.txt",
31
+ "Deployment.txt",
32
+ "History.txt",
33
+ "Logging.txt",
34
+ "Manifest.txt",
35
+ "PostInstall.txt",
36
+ "README.rdoc",
37
+ "Rakefile",
38
+ "RuoteParticipants.txt",
39
+ "TODO.txt",
40
+ "app_generators/daemon_kit/USAGE",
41
+ "app_generators/daemon_kit/daemon_kit_generator.rb",
42
+ "app_generators/daemon_kit/templates/README",
43
+ "app_generators/daemon_kit/templates/Rakefile",
44
+ "app_generators/daemon_kit/templates/bin/daemon.erb",
45
+ "app_generators/daemon_kit/templates/config/arguments.rb",
46
+ "app_generators/daemon_kit/templates/config/boot.rb",
47
+ "app_generators/daemon_kit/templates/config/environment.rb",
48
+ "app_generators/daemon_kit/templates/config/environments/development.rb",
49
+ "app_generators/daemon_kit/templates/config/environments/production.rb",
50
+ "app_generators/daemon_kit/templates/config/environments/test.rb",
51
+ "app_generators/daemon_kit/templates/config/post-daemonize/readme",
52
+ "app_generators/daemon_kit/templates/config/pre-daemonize/readme",
53
+ "app_generators/daemon_kit/templates/lib/daemon.rb",
54
+ "app_generators/daemon_kit/templates/libexec/daemon.erb",
55
+ "app_generators/daemon_kit/templates/script/console",
56
+ "app_generators/daemon_kit/templates/script/destroy",
57
+ "app_generators/daemon_kit/templates/script/generate",
58
+ "bin/daemon-kit",
59
+ "config/website.yml",
60
+ "daemon-kit.gemspec",
61
+ "daemon_generators/amqp/USAGE",
62
+ "daemon_generators/amqp/amqp_generator.rb",
63
+ "daemon_generators/amqp/templates/config/amqp.yml",
64
+ "daemon_generators/amqp/templates/config/initializers/amqp.rb",
65
+ "daemon_generators/amqp/templates/libexec/daemon.rb",
66
+ "daemon_generators/cron/USAGE",
67
+ "daemon_generators/cron/cron_generator.rb",
68
+ "daemon_generators/cron/templates/config/initializers/cron.rb",
69
+ "daemon_generators/cron/templates/libexec/daemon.rb",
70
+ "daemon_generators/cucumber/USAGE",
71
+ "daemon_generators/cucumber/cucumber_generator.rb",
72
+ "daemon_generators/cucumber/templates/cucumber",
73
+ "daemon_generators/cucumber/templates/cucumber.rake",
74
+ "daemon_generators/cucumber/templates/cucumber_environment.rb",
75
+ "daemon_generators/cucumber/templates/env.rb",
76
+ "daemon_generators/deploy_capistrano/deploy_capistrano_generator.rb",
77
+ "daemon_generators/deploy_capistrano/templates/Capfile",
78
+ "daemon_generators/deploy_capistrano/templates/USAGE",
79
+ "daemon_generators/deploy_capistrano/templates/config/deploy.rb",
80
+ "daemon_generators/deploy_capistrano/templates/config/deploy/production.rb",
81
+ "daemon_generators/deploy_capistrano/templates/config/deploy/staging.rb",
82
+ "daemon_generators/deploy_capistrano/templates/config/environments/staging.rb",
83
+ "daemon_generators/jabber/USAGE",
84
+ "daemon_generators/jabber/jabber_generator.rb",
85
+ "daemon_generators/jabber/templates/config/initializers/jabber.rb",
86
+ "daemon_generators/jabber/templates/config/jabber.yml",
87
+ "daemon_generators/jabber/templates/libexec/daemon.rb",
88
+ "daemon_generators/nanite_agent/USAGE",
89
+ "daemon_generators/nanite_agent/nanite_agent_generator.rb",
90
+ "daemon_generators/nanite_agent/templates/config/initializers/nanite_agent.rb",
91
+ "daemon_generators/nanite_agent/templates/config/nanite.yml",
92
+ "daemon_generators/nanite_agent/templates/lib/actors/sample.rb",
93
+ "daemon_generators/nanite_agent/templates/libexec/daemon.rb",
94
+ "daemon_generators/rspec/USAGE",
95
+ "daemon_generators/rspec/rspec_generator.rb",
96
+ "daemon_generators/rspec/templates/spec.rb",
97
+ "daemon_generators/rspec/templates/spec/spec.opts",
98
+ "daemon_generators/rspec/templates/spec/spec_helper.rb",
99
+ "daemon_generators/rspec/templates/tasks/rspec.rake",
100
+ "daemon_generators/ruote/USAGE",
101
+ "daemon_generators/ruote/ruote_generator.rb",
102
+ "daemon_generators/ruote/templates/config/amqp.yml",
103
+ "daemon_generators/ruote/templates/config/initializers/ruote.rb",
104
+ "daemon_generators/ruote/templates/config/ruote.yml",
105
+ "daemon_generators/ruote/templates/lib/daemon.rb",
106
+ "daemon_generators/ruote/templates/lib/sample.rb",
107
+ "daemon_generators/ruote/templates/libexec/daemon.rb",
108
+ "daemon_generators/test_unit/USAGE",
109
+ "daemon_generators/test_unit/templates/tasks/test_unit.rake",
110
+ "daemon_generators/test_unit/templates/test/test.rb",
111
+ "daemon_generators/test_unit/templates/test/test_helper.rb",
112
+ "daemon_generators/test_unit/test_unit_generator.rb",
113
+ "lib/daemon_kit.rb",
114
+ "lib/daemon_kit/abstract_logger.rb",
115
+ "lib/daemon_kit/amqp.rb",
116
+ "lib/daemon_kit/application.rb",
117
+ "lib/daemon_kit/arguments.rb",
118
+ "lib/daemon_kit/commands/console.rb",
119
+ "lib/daemon_kit/config.rb",
120
+ "lib/daemon_kit/console_daemon.rb",
121
+ "lib/daemon_kit/core_ext.rb",
122
+ "lib/daemon_kit/core_ext/configurable.rb",
123
+ "lib/daemon_kit/core_ext/string.rb",
124
+ "lib/daemon_kit/cron.rb",
125
+ "lib/daemon_kit/cucumber/world.rb",
126
+ "lib/daemon_kit/deployment/capistrano.rb",
127
+ "lib/daemon_kit/em.rb",
128
+ "lib/daemon_kit/error_handlers/base.rb",
129
+ "lib/daemon_kit/error_handlers/hoptoad.rb",
130
+ "lib/daemon_kit/error_handlers/mail.rb",
131
+ "lib/daemon_kit/exceptions.rb",
132
+ "lib/daemon_kit/initializer.rb",
133
+ "lib/daemon_kit/jabber.rb",
134
+ "lib/daemon_kit/nanite.rb",
135
+ "lib/daemon_kit/nanite/agent.rb",
136
+ "lib/daemon_kit/pid_file.rb",
137
+ "lib/daemon_kit/ruote_participants.rb",
138
+ "lib/daemon_kit/ruote_pseudo_participant.rb",
139
+ "lib/daemon_kit/ruote_workitem.rb",
140
+ "lib/daemon_kit/safety.rb",
141
+ "lib/daemon_kit/tasks.rb",
142
+ "lib/daemon_kit/tasks/environment.rake",
143
+ "lib/daemon_kit/tasks/framework.rake",
144
+ "lib/daemon_kit/tasks/god.rake",
145
+ "lib/daemon_kit/tasks/log.rake",
146
+ "lib/daemon_kit/tasks/monit.rake",
147
+ "lib/daemon_kit/xmpp.rb",
148
+ "script/console",
149
+ "script/destroy",
150
+ "script/generate",
151
+ "script/txt2html",
152
+ "spec/abstract_logger_spec.rb",
153
+ "spec/argument_spec.rb",
154
+ "spec/config_spec.rb",
155
+ "spec/configurable_spec.rb",
156
+ "spec/daemon_kit_spec.rb",
157
+ "spec/error_handlers_spec.rb",
158
+ "spec/fixtures/env.yml",
159
+ "spec/fixtures/noenv.yml",
160
+ "spec/initializer_spec.rb",
161
+ "spec/spec.opts",
162
+ "spec/spec_helper.rb",
163
+ "tasks/cucumber.rake",
164
+ "tasks/rspec.rake",
165
+ "tasks/tests.rake",
166
+ "templates/god/god.erb",
167
+ "templates/monit/monit.erb",
168
+ "test/test_amqp_generator.rb",
169
+ "test/test_cron_generator.rb",
170
+ "test/test_daemon-kit_generator.rb",
171
+ "test/test_daemon_kit_config.rb",
172
+ "test/test_deploy_capistrano_generator.rb",
173
+ "test/test_generator_helper.rb",
174
+ "test/test_helper.rb",
175
+ "test/test_jabber_generator.rb",
176
+ "test/test_nanite_agent_generator.rb",
177
+ "test/test_ruote_generator.rb",
178
+ "test/test_test_unit_generator.rb",
179
+ "vendor/tmail-1.2.3/tmail.rb",
180
+ "vendor/tmail-1.2.3/tmail/address.rb",
181
+ "vendor/tmail-1.2.3/tmail/attachments.rb",
182
+ "vendor/tmail-1.2.3/tmail/base64.rb",
183
+ "vendor/tmail-1.2.3/tmail/compat.rb",
184
+ "vendor/tmail-1.2.3/tmail/config.rb",
185
+ "vendor/tmail-1.2.3/tmail/core_extensions.rb",
186
+ "vendor/tmail-1.2.3/tmail/encode.rb",
187
+ "vendor/tmail-1.2.3/tmail/header.rb",
188
+ "vendor/tmail-1.2.3/tmail/index.rb",
189
+ "vendor/tmail-1.2.3/tmail/interface.rb",
190
+ "vendor/tmail-1.2.3/tmail/loader.rb",
191
+ "vendor/tmail-1.2.3/tmail/mail.rb",
192
+ "vendor/tmail-1.2.3/tmail/mailbox.rb",
193
+ "vendor/tmail-1.2.3/tmail/main.rb",
194
+ "vendor/tmail-1.2.3/tmail/mbox.rb",
195
+ "vendor/tmail-1.2.3/tmail/net.rb",
196
+ "vendor/tmail-1.2.3/tmail/obsolete.rb",
197
+ "vendor/tmail-1.2.3/tmail/parser.rb",
198
+ "vendor/tmail-1.2.3/tmail/port.rb",
199
+ "vendor/tmail-1.2.3/tmail/quoting.rb",
200
+ "vendor/tmail-1.2.3/tmail/require_arch.rb",
201
+ "vendor/tmail-1.2.3/tmail/scanner.rb",
202
+ "vendor/tmail-1.2.3/tmail/scanner_r.rb",
203
+ "vendor/tmail-1.2.3/tmail/stringio.rb",
204
+ "vendor/tmail-1.2.3/tmail/utils.rb",
205
+ "vendor/tmail-1.2.3/tmail/version.rb",
206
+ "vendor/tmail.rb"
207
+ ]
208
+ s.homepage = %q{http://github.com/kennethkalmer/daemon-kit}
209
+ s.post_install_message = %q{
210
+ For more information on daemon-kit, see http://kit.rubyforge.org/daemon-kit
211
+
212
+ To get started quickly run 'daemon-kit' without any arguments
213
+
214
+
215
+ }
216
+ s.rdoc_options = ["--charset=UTF-8"]
217
+ s.require_paths = ["lib"]
218
+ s.rubygems_version = %q{1.3.5}
219
+ s.summary = %q{Opinionated framework for Ruby daemons}
220
+ s.test_files = [
221
+ "spec/abstract_logger_spec.rb",
222
+ "spec/argument_spec.rb",
223
+ "spec/config_spec.rb",
224
+ "spec/configurable_spec.rb",
225
+ "spec/daemon_kit_spec.rb",
226
+ "spec/error_handlers_spec.rb",
227
+ "spec/initializer_spec.rb",
228
+ "spec/spec_helper.rb",
229
+ "test/test_amqp_generator.rb",
230
+ "test/test_cron_generator.rb",
231
+ "test/test_daemon-kit_generator.rb",
232
+ "test/test_daemon_kit_config.rb",
233
+ "test/test_deploy_capistrano_generator.rb",
234
+ "test/test_generator_helper.rb",
235
+ "test/test_helper.rb",
236
+ "test/test_jabber_generator.rb",
237
+ "test/test_nanite_agent_generator.rb",
238
+ "test/test_ruote_generator.rb",
239
+ "test/test_test_unit_generator.rb"
240
+ ]
241
+
242
+ if s.respond_to? :specification_version then
243
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
244
+ s.specification_version = 3
245
+
246
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
247
+ s.add_runtime_dependency(%q<eventmachine>, [">= 0.12.8"])
248
+ s.add_runtime_dependency(%q<rubigen>, [">= 1.5.2"])
249
+ s.add_development_dependency(%q<rspec>, [">= 0"])
250
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
251
+ else
252
+ s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
253
+ s.add_dependency(%q<rubigen>, [">= 1.5.2"])
254
+ s.add_dependency(%q<rspec>, [">= 0"])
255
+ s.add_dependency(%q<cucumber>, [">= 0"])
256
+ end
257
+ else
258
+ s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
259
+ s.add_dependency(%q<rubigen>, [">= 1.5.2"])
260
+ s.add_dependency(%q<rspec>, [">= 0"])
261
+ s.add_dependency(%q<cucumber>, [">= 0"])
262
+ end
263
+ end
264
+