daemon-kit 0.1.3

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.
Files changed (63) hide show
  1. data/History.txt +17 -0
  2. data/Manifest.txt +62 -0
  3. data/PostInstall.txt +6 -0
  4. data/README.textile +94 -0
  5. data/Rakefile +31 -0
  6. data/TODO.txt +24 -0
  7. data/app_generators/daemon_kit/USAGE +7 -0
  8. data/app_generators/daemon_kit/daemon_kit_generator.rb +120 -0
  9. data/app_generators/daemon_kit/templates/README +48 -0
  10. data/app_generators/daemon_kit/templates/Rakefile +4 -0
  11. data/app_generators/daemon_kit/templates/bin/daemon.erb +7 -0
  12. data/app_generators/daemon_kit/templates/config/boot.rb +68 -0
  13. data/app_generators/daemon_kit/templates/config/environment.rb +19 -0
  14. data/app_generators/daemon_kit/templates/config/environments/development.rb +0 -0
  15. data/app_generators/daemon_kit/templates/config/environments/production.rb +0 -0
  16. data/app_generators/daemon_kit/templates/config/environments/test.rb +0 -0
  17. data/app_generators/daemon_kit/templates/config/initializers/readme +11 -0
  18. data/app_generators/daemon_kit/templates/libexec/daemon.erb +18 -0
  19. data/bin/daemon_kit +19 -0
  20. data/daemon_generators/amqp/USAGE +5 -0
  21. data/daemon_generators/amqp/amqp_generator.rb +65 -0
  22. data/daemon_generators/amqp/templates/config/amqp.yml +28 -0
  23. data/daemon_generators/amqp/templates/config/initializers/amqp.rb +7 -0
  24. data/daemon_generators/amqp/templates/libexec/daemon.rb +29 -0
  25. data/daemon_generators/cron/USAGE +5 -0
  26. data/daemon_generators/cron/cron_generator.rb +64 -0
  27. data/daemon_generators/cron/templates/config/initializers/cron.rb +7 -0
  28. data/daemon_generators/cron/templates/libexec/daemon.rb +39 -0
  29. data/daemon_generators/jabber/USAGE +5 -0
  30. data/daemon_generators/jabber/jabber_generator.rb +65 -0
  31. data/daemon_generators/jabber/templates/config/initializers/jabber.rb +7 -0
  32. data/daemon_generators/jabber/templates/config/jabber.yml +26 -0
  33. data/daemon_generators/jabber/templates/libexec/daemon.rb +27 -0
  34. data/lib/daemon_kit.rb +14 -0
  35. data/lib/daemon_kit/amqp.rb +41 -0
  36. data/lib/daemon_kit/application.rb +34 -0
  37. data/lib/daemon_kit/cron.rb +38 -0
  38. data/lib/daemon_kit/initializer.rb +255 -0
  39. data/lib/daemon_kit/jabber.rb +172 -0
  40. data/lib/daemon_kit/patches/force_kill_wait.rb +120 -0
  41. data/lib/daemon_kit/tasks.rb +2 -0
  42. data/lib/daemon_kit/tasks/framework.rake +75 -0
  43. data/rubygems_generators/install_rspec/USAGE +5 -0
  44. data/rubygems_generators/install_rspec/install_rspec_generator.rb +57 -0
  45. data/rubygems_generators/install_rspec/templates/spec.rb +11 -0
  46. data/rubygems_generators/install_rspec/templates/spec/spec.opts +1 -0
  47. data/rubygems_generators/install_rspec/templates/spec/spec_helper.rb +10 -0
  48. data/rubygems_generators/install_rspec/templates/tasks/rspec.rake +21 -0
  49. data/script/console +10 -0
  50. data/script/destroy +14 -0
  51. data/script/generate +14 -0
  52. data/script/txt2html +71 -0
  53. data/spec/daemon_kit_spec.rb +7 -0
  54. data/spec/initializer_spec.rb +31 -0
  55. data/spec/spec.opts +1 -0
  56. data/spec/spec_helper.rb +30 -0
  57. data/tasks/rspec.rake +21 -0
  58. data/test/test_amqp_generator.rb +48 -0
  59. data/test/test_cron_generator.rb +45 -0
  60. data/test/test_daemon-kit_generator.rb +67 -0
  61. data/test/test_generator_helper.rb +29 -0
  62. data/test/test_jabber_generator.rb +49 -0
  63. metadata +168 -0
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,30 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+ require 'daemon_kit'
11
+
12
+ gem 'mocha'
13
+ require 'fileutils'
14
+
15
+ DAEMON_ROOT = "#{File.dirname(__FILE__)}/../tmp"
16
+
17
+ Spec::Runner.configure do |config|
18
+ # == Mock Framework
19
+ #
20
+ # RSpec uses it's own mocking framework by default. If you prefer to
21
+ # use mocha, flexmock or RR, uncomment the appropriate line:
22
+ #
23
+ config.mock_with :mocha
24
+ # config.mock_with :flexmock
25
+ # config.mock_with :rr
26
+
27
+ # setup a fake daemon_root
28
+ config.before(:all) { File.directory?( DAEMON_ROOT ) ? FileUtils.rm_rf("#{DAEMON_ROOT}/*") : FileUtils.mkdir_p( DAEMON_ROOT ) }
29
+ config.after(:all) { FileUtils.rm_rf("#{DAEMON_ROOT}/*") }
30
+ end
data/tasks/rspec.rake ADDED
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ['--options', "spec/spec.opts"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
@@ -0,0 +1,48 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestAmqpGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ # Some generator-related assertions:
16
+ # assert_generated_file(name, &block) # block passed the file contents
17
+ # assert_directory_exists(name)
18
+ # assert_generated_class(name, &block)
19
+ # assert_generated_module(name, &block)
20
+ # assert_generated_test_for(name, &block)
21
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
22
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
23
+ #
24
+ # Other helper methods are:
25
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
26
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
27
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
28
+
29
+ def test_generator_without_options
30
+ name = "myapp"
31
+ run_generator('amqp', [name], sources)
32
+ assert_directory_exists "config"
33
+ assert_directory_exists "config/initializers"
34
+ assert_generated_file "config/amqp.yml"
35
+ assert_generated_file "config/initializers/myapp.rb"
36
+ assert_generated_file "libexec/myapp.rb"
37
+ end
38
+
39
+ private
40
+ def sources
41
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
42
+ ]
43
+ end
44
+
45
+ def generator_path
46
+ "daemon_generators"
47
+ end
48
+ end
@@ -0,0 +1,45 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestCronGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ # Some generator-related assertions:
16
+ # assert_generated_file(name, &block) # block passed the file contents
17
+ # assert_directory_exists(name)
18
+ # assert_generated_class(name, &block)
19
+ # assert_generated_module(name, &block)
20
+ # assert_generated_test_for(name, &block)
21
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
22
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
23
+ #
24
+ # Other helper methods are:
25
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
26
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
27
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
28
+
29
+ def test_generator_without_options
30
+ name = "myapp"
31
+ run_generator('cron', [name], sources)
32
+ assert_directory_exists "config/initializers"
33
+ assert_generated_file "config/initializers/myapp.rb"
34
+ end
35
+
36
+ private
37
+ def sources
38
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
39
+ ]
40
+ end
41
+
42
+ def generator_path
43
+ "daemon_generators"
44
+ end
45
+ end
@@ -0,0 +1,67 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ class TestDaemonKitGenerator < Test::Unit::TestCase
4
+ include RubiGen::GeneratorTestHelper
5
+
6
+ attr_reader :daemon_name
7
+ def setup
8
+ bare_setup
9
+ @daemon_name = File.basename(File.expand_path(APP_ROOT))
10
+ end
11
+
12
+ def teardown
13
+ bare_teardown
14
+ end
15
+
16
+ # Some generator-related assertions:
17
+ # assert_generated_file(name, &block) # block passed the file contents
18
+ # assert_directory_exists(name)
19
+ # assert_generated_class(name, &block)
20
+ # assert_generated_module(name, &block)
21
+ # assert_generated_test_for(name, &block)
22
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
23
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
24
+ #
25
+ # Other helper methods are:
26
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
27
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
28
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
29
+
30
+ def test_generator_without_options
31
+ run_generator('daemon_kit', [APP_ROOT], sources)
32
+
33
+ assert_generated_file "README"
34
+ assert_generated_file "Rakefile"
35
+ assert_directory_exists "bin"
36
+ assert_generated_file "bin/#{daemon_name}"
37
+ assert_directory_exists "config"
38
+ assert_generated_file "config/boot.rb"
39
+ assert_generated_file "config/environment.rb"
40
+ assert_generated_file "config/environments/development.rb"
41
+ assert_generated_file "config/environments/test.rb"
42
+ assert_generated_file "config/environments/production.rb"
43
+ assert_directory_exists "config/initializers"
44
+ assert_generated_file "config/initializers/readme"
45
+ assert_directory_exists "lib"
46
+ assert_directory_exists "libexec"
47
+ assert_generated_file "libexec/#{daemon_name}.rb"
48
+ assert_directory_exists "log"
49
+ assert_directory_exists "spec"
50
+ assert_directory_exists "tasks"
51
+ assert_directory_exists "vendor"
52
+ assert_directory_exists "tmp"
53
+ end
54
+
55
+ private
56
+ def sources
57
+ [
58
+ RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path)),
59
+ RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "daemon_generators")),
60
+ RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "rubygems_generators"))
61
+ ]
62
+ end
63
+
64
+ def generator_path
65
+ "app_generators"
66
+ end
67
+ end
@@ -0,0 +1,29 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
@@ -0,0 +1,49 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestJabberGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ # Some generator-related assertions:
16
+ # assert_generated_file(name, &block) # block passed the file contents
17
+ # assert_directory_exists(name)
18
+ # assert_generated_class(name, &block)
19
+ # assert_generated_module(name, &block)
20
+ # assert_generated_test_for(name, &block)
21
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
22
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
23
+ #
24
+ # Other helper methods are:
25
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
26
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
27
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
28
+
29
+ def test_generator_without_options
30
+ name = "myapp"
31
+ run_generator('jabber', [name], sources)
32
+ assert_directory_exists "config"
33
+ assert_generated_file "config/jabber.yml"
34
+ assert_directory_exists "config/initializers"
35
+ assert_generated_file "config/initializers/myapp.rb"
36
+ assert_directory_exists "libexec"
37
+ assert_generated_file "libexec/myapp.rb"
38
+ end
39
+
40
+ private
41
+ def sources
42
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
43
+ ]
44
+ end
45
+
46
+ def generator_path
47
+ "daemon_generators"
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: daemon-kit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3
5
+ platform: ruby
6
+ authors:
7
+ - Kenneth Kalmer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-29 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: daemons
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.10
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rubigen
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.5.2
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: newgem
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.3.0
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: hoe
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.8.0
54
+ version:
55
+ description:
56
+ email:
57
+ - kenneth.kalmer@gmail.com
58
+ executables:
59
+ - daemon_kit
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - History.txt
64
+ - Manifest.txt
65
+ - PostInstall.txt
66
+ - TODO.txt
67
+ files:
68
+ - History.txt
69
+ - Manifest.txt
70
+ - PostInstall.txt
71
+ - README.textile
72
+ - Rakefile
73
+ - TODO.txt
74
+ - app_generators/daemon_kit/USAGE
75
+ - app_generators/daemon_kit/daemon_kit_generator.rb
76
+ - app_generators/daemon_kit/templates/README
77
+ - app_generators/daemon_kit/templates/Rakefile
78
+ - app_generators/daemon_kit/templates/bin/daemon.erb
79
+ - app_generators/daemon_kit/templates/config/boot.rb
80
+ - app_generators/daemon_kit/templates/config/environment.rb
81
+ - app_generators/daemon_kit/templates/config/environments/development.rb
82
+ - app_generators/daemon_kit/templates/config/environments/production.rb
83
+ - app_generators/daemon_kit/templates/config/environments/test.rb
84
+ - app_generators/daemon_kit/templates/config/initializers/readme
85
+ - app_generators/daemon_kit/templates/libexec/daemon.erb
86
+ - bin/daemon_kit
87
+ - daemon_generators/amqp/USAGE
88
+ - daemon_generators/amqp/amqp_generator.rb
89
+ - daemon_generators/amqp/templates/config/amqp.yml
90
+ - daemon_generators/amqp/templates/config/initializers/amqp.rb
91
+ - daemon_generators/amqp/templates/libexec/daemon.rb
92
+ - daemon_generators/cron/USAGE
93
+ - daemon_generators/cron/cron_generator.rb
94
+ - daemon_generators/cron/templates/config/initializers/cron.rb
95
+ - daemon_generators/cron/templates/libexec/daemon.rb
96
+ - daemon_generators/jabber/USAGE
97
+ - daemon_generators/jabber/jabber_generator.rb
98
+ - daemon_generators/jabber/templates/config/initializers/jabber.rb
99
+ - daemon_generators/jabber/templates/config/jabber.yml
100
+ - daemon_generators/jabber/templates/libexec/daemon.rb
101
+ - lib/daemon_kit.rb
102
+ - lib/daemon_kit/amqp.rb
103
+ - lib/daemon_kit/application.rb
104
+ - lib/daemon_kit/cron.rb
105
+ - lib/daemon_kit/initializer.rb
106
+ - lib/daemon_kit/jabber.rb
107
+ - lib/daemon_kit/patches/force_kill_wait.rb
108
+ - lib/daemon_kit/tasks.rb
109
+ - lib/daemon_kit/tasks/framework.rake
110
+ - rubygems_generators/install_rspec/USAGE
111
+ - rubygems_generators/install_rspec/install_rspec_generator.rb
112
+ - rubygems_generators/install_rspec/templates/spec.rb
113
+ - rubygems_generators/install_rspec/templates/spec/spec.opts
114
+ - rubygems_generators/install_rspec/templates/spec/spec_helper.rb
115
+ - rubygems_generators/install_rspec/templates/tasks/rspec.rake
116
+ - script/console
117
+ - script/destroy
118
+ - script/generate
119
+ - script/txt2html
120
+ - spec/daemon_kit_spec.rb
121
+ - spec/initializer_spec.rb
122
+ - spec/spec.opts
123
+ - spec/spec_helper.rb
124
+ - tasks/rspec.rake
125
+ - test/test_amqp_generator.rb
126
+ - test/test_cron_generator.rb
127
+ - test/test_daemon-kit_generator.rb
128
+ - test/test_generator_helper.rb
129
+ - test/test_jabber_generator.rb
130
+ has_rdoc: true
131
+ homepage:
132
+ post_install_message: |+
133
+
134
+ For more information on daemon-kit, see http://daemon-kit.rubyforge.org
135
+
136
+ To get started quickly run 'daemon_kit' without any arguments
137
+
138
+
139
+ rdoc_options:
140
+ - --main
141
+ - README.textile
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: "0"
149
+ version:
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: "0"
155
+ version:
156
+ requirements: []
157
+
158
+ rubyforge_project: daemon-kit
159
+ rubygems_version: 1.3.1
160
+ signing_key:
161
+ specification_version: 2
162
+ 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.
163
+ test_files:
164
+ - test/test_daemon-kit_generator.rb
165
+ - test/test_generator_helper.rb
166
+ - test/test_jabber_generator.rb
167
+ - test/test_cron_generator.rb
168
+ - test/test_amqp_generator.rb