daemon-kit 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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