textgoeshere-daemon-kit 0.1.8rc3
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 +5 -0
- data/Configuration.txt +110 -0
- data/Deployment.txt +113 -0
- data/History.txt +124 -0
- data/Logging.txt +96 -0
- data/PostInstall.txt +6 -0
- data/README.rdoc +128 -0
- data/Rakefile +29 -0
- data/RuoteParticipants.txt +113 -0
- data/TODO.txt +27 -0
- data/bin/daemon-kit +18 -0
- data/config/website.yml +2 -0
- data/daemon-kit.gemspec +265 -0
- data/lib/daemon_kit/abstract_logger.rb +249 -0
- data/lib/daemon_kit/amqp.rb +39 -0
- data/lib/daemon_kit/application.rb +230 -0
- data/lib/daemon_kit/arguments.rb +165 -0
- data/lib/daemon_kit/commands/console.rb +38 -0
- data/lib/daemon_kit/commands/destroy.rb +10 -0
- data/lib/daemon_kit/commands/generate.rb +10 -0
- data/lib/daemon_kit/config.rb +113 -0
- data/lib/daemon_kit/console_daemon.rb +2 -0
- data/lib/daemon_kit/core_ext/configurable.rb +96 -0
- data/lib/daemon_kit/core_ext/string.rb +22 -0
- data/lib/daemon_kit/core_ext.rb +1 -0
- data/lib/daemon_kit/cron.rb +48 -0
- data/lib/daemon_kit/cucumber/world.rb +38 -0
- data/lib/daemon_kit/deployment/capistrano.rb +516 -0
- data/lib/daemon_kit/em.rb +43 -0
- data/lib/daemon_kit/error_handlers/base.rb +32 -0
- data/lib/daemon_kit/error_handlers/hoptoad.rb +180 -0
- data/lib/daemon_kit/exceptions.rb +15 -0
- data/lib/daemon_kit/generators/base.rb +60 -0
- data/lib/daemon_kit/generators.rb +67 -0
- data/lib/daemon_kit/initializer.rb +453 -0
- data/lib/daemon_kit/jabber.rb +171 -0
- data/lib/daemon_kit/nanite/agent.rb +77 -0
- data/lib/daemon_kit/nanite.rb +7 -0
- data/lib/daemon_kit/pid_file.rb +61 -0
- data/lib/daemon_kit/ruote_participants.rb +125 -0
- data/lib/daemon_kit/ruote_pseudo_participant.rb +68 -0
- data/lib/daemon_kit/ruote_workitem.rb +187 -0
- data/lib/daemon_kit/safety.rb +84 -0
- data/lib/daemon_kit/tasks/environment.rake +10 -0
- data/lib/daemon_kit/tasks/framework.rake +123 -0
- data/lib/daemon_kit/tasks/god.rake +62 -0
- data/lib/daemon_kit/tasks/log.rake +8 -0
- data/lib/daemon_kit/tasks/monit.rake +29 -0
- data/lib/daemon_kit/tasks.rb +2 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/CHANGELOG.rdoc +89 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/LICENSE +20 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/README.rdoc +297 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/Thorfile +69 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/actions/create_file.rb +103 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/actions/directory.rb +91 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/actions/empty_directory.rb +134 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/actions/file_manipulation.rb +223 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/actions/inject_into_file.rb +104 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/actions.rb +296 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/base.rb +540 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/core_ext/file_binary_read.rb +9 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/core_ext/hash_with_indifferent_access.rb +75 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/core_ext/ordered_hash.rb +100 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/error.rb +30 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/group.rb +271 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/invocation.rb +180 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/parser/argument.rb +67 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/parser/arguments.rb +150 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/parser/option.rb +128 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/parser/options.rb +169 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/parser.rb +4 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/rake_compat.rb +66 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/runner.rb +314 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/shell/basic.rb +239 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/shell/color.rb +108 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/shell.rb +83 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/task.rb +102 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/util.rb +224 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor/version.rb +3 -0
- data/lib/daemon_kit/vendor/thor-0.13.6/lib/thor.rb +244 -0
- data/lib/daemon_kit/xmpp.rb +100 -0
- data/lib/daemon_kit.rb +59 -0
- data/lib/generators/daemon_kit/amqp/USAGE +5 -0
- data/lib/generators/daemon_kit/amqp/amqp_generator.rb +24 -0
- data/lib/generators/daemon_kit/amqp/templates/config/amqp.yml +28 -0
- data/lib/generators/daemon_kit/amqp/templates/config/pre-daemonize/amqp.rb +7 -0
- data/lib/generators/daemon_kit/amqp/templates/libexec/%app_name%-daemon.rb +37 -0
- data/lib/generators/daemon_kit/app/USAGE +7 -0
- data/lib/generators/daemon_kit/app/app_generator.rb +140 -0
- data/lib/generators/daemon_kit/app/templates/Gemfile +8 -0
- data/lib/generators/daemon_kit/app/templates/README.tt +58 -0
- data/lib/generators/daemon_kit/app/templates/Rakefile +6 -0
- data/lib/generators/daemon_kit/app/templates/bin/daemon.tt +7 -0
- data/lib/generators/daemon_kit/app/templates/config/arguments.rb +12 -0
- data/lib/generators/daemon_kit/app/templates/config/boot.rb +70 -0
- data/lib/generators/daemon_kit/app/templates/config/environment.rb.tt +26 -0
- data/lib/generators/daemon_kit/app/templates/config/environments/development.rb +2 -0
- data/lib/generators/daemon_kit/app/templates/config/environments/production.rb +5 -0
- data/lib/generators/daemon_kit/app/templates/config/environments/test.rb +2 -0
- data/lib/generators/daemon_kit/app/templates/config/post-daemonize/readme +5 -0
- data/lib/generators/daemon_kit/app/templates/config/pre-daemonize/readme +12 -0
- data/lib/generators/daemon_kit/app/templates/lib/%app_name%.rb +2 -0
- data/lib/generators/daemon_kit/app/templates/libexec/%app_name%-daemon.rb +18 -0
- data/lib/generators/daemon_kit/app/templates/script/console +3 -0
- data/lib/generators/daemon_kit/app/templates/script/destroy +3 -0
- data/lib/generators/daemon_kit/app/templates/script/generate +3 -0
- data/lib/generators/daemon_kit/capistrano/capistrano_generator.rb +26 -0
- data/lib/generators/daemon_kit/capistrano/templates/Capfile +10 -0
- data/lib/generators/daemon_kit/capistrano/templates/USAGE +10 -0
- data/lib/generators/daemon_kit/capistrano/templates/config/deploy/logrotate.erb +13 -0
- data/lib/generators/daemon_kit/capistrano/templates/config/deploy/production.rb.tt +6 -0
- data/lib/generators/daemon_kit/capistrano/templates/config/deploy/staging.rb.tt +6 -0
- data/lib/generators/daemon_kit/capistrano/templates/config/deploy.rb.tt +67 -0
- data/lib/generators/daemon_kit/capistrano/templates/config/environments/staging.rb +0 -0
- data/lib/generators/daemon_kit/cron/USAGE +5 -0
- data/lib/generators/daemon_kit/cron/cron_generator.rb +24 -0
- data/lib/generators/daemon_kit/cron/templates/config/pre-daemonize/cron.rb +11 -0
- data/lib/generators/daemon_kit/cron/templates/libexec/%app_name%-daemon.rb +43 -0
- data/lib/generators/daemon_kit/cucumber/USAGE +11 -0
- data/lib/generators/daemon_kit/cucumber/cucumber_generator.rb +45 -0
- data/lib/generators/daemon_kit/cucumber/templates/config/environments/cucumber.rb +2 -0
- data/lib/generators/daemon_kit/cucumber/templates/features/step_definitions/.empty_directory +0 -0
- data/lib/generators/daemon_kit/cucumber/templates/features/support/env.rb +7 -0
- data/lib/generators/daemon_kit/cucumber/templates/script/cucumber +7 -0
- data/lib/generators/daemon_kit/cucumber/templates/tasks/cucumber.rake +13 -0
- data/lib/generators/daemon_kit/nanite_agent/USAGE +5 -0
- data/lib/generators/daemon_kit/nanite_agent/nanite_agent_generator.rb +29 -0
- data/lib/generators/daemon_kit/nanite_agent/templates/config/nanite.yml +35 -0
- data/lib/generators/daemon_kit/nanite_agent/templates/config/pre-daemonize/nanite_agent.rb +6 -0
- data/lib/generators/daemon_kit/nanite_agent/templates/lib/actors/sample.rb +11 -0
- data/lib/generators/daemon_kit/nanite_agent/templates/libexec/%app_name%-daemon.rb +31 -0
- data/lib/generators/daemon_kit/rspec/USAGE +5 -0
- data/lib/generators/daemon_kit/rspec/rspec_generator.rb +20 -0
- data/lib/generators/daemon_kit/rspec/templates/spec/%app_name%_spec.rb +11 -0
- data/lib/generators/daemon_kit/rspec/templates/spec/spec.opts +1 -0
- data/lib/generators/daemon_kit/rspec/templates/spec/spec_helper.rb +23 -0
- data/lib/generators/daemon_kit/rspec/templates/tasks/rspec.rake +19 -0
- data/lib/generators/daemon_kit/ruote/USAGE +5 -0
- data/lib/generators/daemon_kit/ruote/ruote_generator.rb +29 -0
- data/lib/generators/daemon_kit/ruote/templates/config/amqp.yml +30 -0
- data/lib/generators/daemon_kit/ruote/templates/config/pre-daemonize/ruote.rb +13 -0
- data/lib/generators/daemon_kit/ruote/templates/config/ruote.yml +23 -0
- data/lib/generators/daemon_kit/ruote/templates/lib/%app_name%.rb +4 -0
- data/lib/generators/daemon_kit/ruote/templates/lib/sample.rb +26 -0
- data/lib/generators/daemon_kit/ruote/templates/libexec/%app_name%-daemon.rb +33 -0
- data/lib/generators/daemon_kit/test_unit/USAGE +5 -0
- data/lib/generators/daemon_kit/test_unit/templates/tasks/test_unit.rake +7 -0
- data/lib/generators/daemon_kit/test_unit/templates/test/%app_name%_test.rb.tt +9 -0
- data/lib/generators/daemon_kit/test_unit/templates/test/test_helper.rb +6 -0
- data/lib/generators/daemon_kit/test_unit/test_unit_generator.rb +20 -0
- data/lib/generators/daemon_kit/xmpp/templates/config/pre-daemonize/xmpp.rb +6 -0
- data/lib/generators/daemon_kit/xmpp/templates/config/xmpp.yml +29 -0
- data/lib/generators/daemon_kit/xmpp/templates/libexec/%app_name%-daemon.rb +27 -0
- data/lib/generators/daemon_kit/xmpp/xmpp_generator.rb +24 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +71 -0
- data/spec/abstract_logger_spec.rb +126 -0
- data/spec/argument_spec.rb +70 -0
- data/spec/config_spec.rb +83 -0
- data/spec/configurable_spec.rb +56 -0
- data/spec/daemon_kit_spec.rb +7 -0
- data/spec/error_handlers_spec.rb +23 -0
- data/spec/fixtures/env.yml +15 -0
- data/spec/fixtures/noenv.yml +4 -0
- data/spec/initializer_spec.rb +26 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +27 -0
- data/tasks/cucumber.rake +13 -0
- data/tasks/rspec.rake +21 -0
- data/tasks/tests.rake +6 -0
- data/templates/god/god.erb +69 -0
- data/templates/monit/monit.erb +14 -0
- data/test/test_amqp_generator.rb +48 -0
- data/test/test_cron_generator.rb +45 -0
- data/test/test_daemon-kit_generator.rb +84 -0
- data/test/test_daemon_kit_config.rb +28 -0
- data/test/test_deploy_capistrano_generator.rb +48 -0
- data/test/test_generator_helper.rb +29 -0
- data/test/test_helper.rb +7 -0
- data/test/test_nanite_agent_generator.rb +49 -0
- data/test/test_ruote_generator.rb +51 -0
- data/test/test_test_unit_generator.rb +46 -0
- metadata +325 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Sets up Cucumber in your daemon-kit project. After running this generator you will
|
|
3
|
+
get a new rake task called features.
|
|
4
|
+
|
|
5
|
+
This also generates the necessary files in the features directory.
|
|
6
|
+
|
|
7
|
+
Also see the feature generator, which you can use to generate skeletons
|
|
8
|
+
for new features.
|
|
9
|
+
|
|
10
|
+
Examples:
|
|
11
|
+
`./script/generate cucumber`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'cucumber'
|
|
2
|
+
|
|
3
|
+
module DaemonKit
|
|
4
|
+
module Generators
|
|
5
|
+
class CucumberGenerator < Base
|
|
6
|
+
include Thor::Actions
|
|
7
|
+
|
|
8
|
+
add_shebang_option!
|
|
9
|
+
|
|
10
|
+
def create_features
|
|
11
|
+
directory 'features'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def create_environment
|
|
15
|
+
template 'config/environments/cucumber.rb'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create_tasks
|
|
19
|
+
copy_file 'tasks/cucumber.rake'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create_script
|
|
23
|
+
copy_file 'script/cucumber' do |content|
|
|
24
|
+
"#{shebang}\n" + content
|
|
25
|
+
end
|
|
26
|
+
chmod 'script', 0755, :verbose => false
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
no_tasks {
|
|
30
|
+
|
|
31
|
+
def cucumber_version
|
|
32
|
+
::Cucumber::VERSION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
protected
|
|
38
|
+
|
|
39
|
+
def self.source_root
|
|
40
|
+
File.expand_path( File.join( File.dirname(__FILE__), 'templates') )
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Sets up the DaemonKit environment for Cucumber
|
|
2
|
+
ENV["DAEMON_ENV"] ||= "cucumber"
|
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
|
|
4
|
+
require 'daemon_kit/cucumber/world'
|
|
5
|
+
|
|
6
|
+
# Comment out the next line if you don't want Cucumber Unicode support
|
|
7
|
+
require 'cucumber/formatter/unicode'
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'cucumber/rake/task'
|
|
3
|
+
|
|
4
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
5
|
+
t.fork = true
|
|
6
|
+
t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')]
|
|
7
|
+
end
|
|
8
|
+
rescue LoadError
|
|
9
|
+
desc 'Cucumber rake task not available'
|
|
10
|
+
task :features do
|
|
11
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module DaemonKit
|
|
2
|
+
module Generators
|
|
3
|
+
class NaniteAgentGenerator < Base
|
|
4
|
+
|
|
5
|
+
def update_gemfile
|
|
6
|
+
append_file 'Gemfile', "gem 'nanite'\n"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def create_config
|
|
10
|
+
directory 'config'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def create_actors
|
|
14
|
+
directory 'lib'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create_libexec
|
|
18
|
+
directory 'libexec'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
protected
|
|
22
|
+
|
|
23
|
+
def self.source_root
|
|
24
|
+
File.expand_path( File.join( File.dirname(__FILE__), 'templates') )
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Nanite agent configuration file
|
|
2
|
+
|
|
3
|
+
# These values will be used to configure the nanite agent, any values
|
|
4
|
+
# omitted will let the gem use it's own defaults.
|
|
5
|
+
|
|
6
|
+
# The configuration specifies the following keys:
|
|
7
|
+
# * user - Specify the rabbitmq username
|
|
8
|
+
# * pass - Specify the rabbitmq password
|
|
9
|
+
# * host - Specify the rabbitmq hostname
|
|
10
|
+
# * vhost - Specify the rabbitmq vhost
|
|
11
|
+
# * port - Specify the rabbitmq PORT, default 5672
|
|
12
|
+
# * token - Specify the agent identity
|
|
13
|
+
# * security - Use Security features of rabbitmq to restrict nanites to themselves
|
|
14
|
+
# * format - The serialization type to use for transfering data. Can be marshal, json or yaml. Default is marshal
|
|
15
|
+
# * tag - YAML array of tags
|
|
16
|
+
# * ping-time - Specify how often the agents contacts the mapper
|
|
17
|
+
# * actors - Comma separated list of actors to load (all ruby files in actors directory by default)
|
|
18
|
+
|
|
19
|
+
defaults: &defaults
|
|
20
|
+
user: nanite
|
|
21
|
+
pass: testing
|
|
22
|
+
host: localhost
|
|
23
|
+
vhost: /nanite
|
|
24
|
+
# tag:
|
|
25
|
+
# - foo
|
|
26
|
+
# - bar
|
|
27
|
+
|
|
28
|
+
development:
|
|
29
|
+
<<: *defaults
|
|
30
|
+
|
|
31
|
+
test:
|
|
32
|
+
<<: *defaults
|
|
33
|
+
|
|
34
|
+
production:
|
|
35
|
+
<<: *defaults
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated nanite agent daemon
|
|
2
|
+
|
|
3
|
+
# Do your post daemonization configuration here
|
|
4
|
+
# At minimum you need just the first line (without the block), or a lot
|
|
5
|
+
# of strange things might start happening...
|
|
6
|
+
DaemonKit::Application.running! do |config|
|
|
7
|
+
# Trap signals with blocks or procs
|
|
8
|
+
# config.trap( 'INT' ) do
|
|
9
|
+
# # do something clever
|
|
10
|
+
# end
|
|
11
|
+
# config.trap( 'TERM', Proc.new { puts 'Going down' } )
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# IMPORTANT CONFIGURATION NOTE
|
|
15
|
+
#
|
|
16
|
+
# Please review and update 'config/nanite.yml' accordingly or this
|
|
17
|
+
# daemon won't work as advertised.
|
|
18
|
+
#
|
|
19
|
+
# Your actors live in DAEMON_ROOT/lib/actors
|
|
20
|
+
|
|
21
|
+
# Run the agent, and get the running agent.
|
|
22
|
+
DaemonKit::Nanite::Agent.run do |agent|
|
|
23
|
+
# Use the yielded agent instance to register your actors:
|
|
24
|
+
agent.register Sample.new
|
|
25
|
+
|
|
26
|
+
# This block can used to make your agent perform other tasks as
|
|
27
|
+
# well. Remember that you have access to a running EventMachine
|
|
28
|
+
# reactor since the AMQP gem used by nanite uses it. Other than that
|
|
29
|
+
# you can mostly leave this file alone and concentrate on developing
|
|
30
|
+
# your actors in the lib/actors/ directory of the project.
|
|
31
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module DaemonKit
|
|
2
|
+
module Generators
|
|
3
|
+
class SpecGenerator < Base
|
|
4
|
+
|
|
5
|
+
def create_specs
|
|
6
|
+
directory 'spec'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def create_task
|
|
10
|
+
directory 'tasks'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
protected
|
|
14
|
+
|
|
15
|
+
def self.source_root
|
|
16
|
+
File.expand_path( File.join( File.dirname(__FILE__), 'templates') )
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--colour
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
DAEMON_ENV = 'test' unless defined?( DAEMON_ENV )
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require 'spec'
|
|
5
|
+
rescue LoadError
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
gem 'rspec'
|
|
8
|
+
require 'spec'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
require File.dirname(__FILE__) + '/../config/environment'
|
|
12
|
+
DaemonKit::Application.running!
|
|
13
|
+
|
|
14
|
+
Spec::Runner.configure do |config|
|
|
15
|
+
# == Mock Framework
|
|
16
|
+
#
|
|
17
|
+
# RSpec uses it's own mocking framework by default. If you prefer to
|
|
18
|
+
# use mocha, flexmock or RR, uncomment the appropriate line:
|
|
19
|
+
#
|
|
20
|
+
# config.mock_with :mocha
|
|
21
|
+
# config.mock_with :flexmock
|
|
22
|
+
# config.mock_with :rr
|
|
23
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'spec'
|
|
3
|
+
require 'spec/rake/spectask'
|
|
4
|
+
rescue LoadError
|
|
5
|
+
puts <<-EOS
|
|
6
|
+
To use rspec for testing you must install rspec gem:
|
|
7
|
+
gem install rspec
|
|
8
|
+
EOS
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
begin
|
|
12
|
+
desc "Run the specs under spec/"
|
|
13
|
+
Spec::Rake::SpecTask.new do |t|
|
|
14
|
+
t.spec_opts = ['--options', "spec/spec.opts"]
|
|
15
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
16
|
+
end
|
|
17
|
+
rescue NameError
|
|
18
|
+
# No loss, warning printed already
|
|
19
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module DaemonKit
|
|
2
|
+
module Generators
|
|
3
|
+
class RuoteGenerator < Base
|
|
4
|
+
|
|
5
|
+
def update_gemfile
|
|
6
|
+
append_file 'Gemfile', "gem 'amqp' # Only needed if running the AMQP participant/listener pair\n"
|
|
7
|
+
append_file 'Gemfile', "gem 'json' # Can be replaced with json_pure\n"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def create_configs
|
|
11
|
+
directory 'config'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def create_lib
|
|
15
|
+
directory 'lib', nil, :force => true
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create_daemon
|
|
19
|
+
directory 'libexec'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
protected
|
|
23
|
+
|
|
24
|
+
def self.source_root
|
|
25
|
+
File.expand_path( File.join( File.dirname(__FILE__), 'templates') )
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# AMQP client configuration file for ruote remote participants. If you are not
|
|
2
|
+
# planning to use the AMQP participant/listener pair in ruote, you can safely
|
|
3
|
+
# delete this file.
|
|
4
|
+
|
|
5
|
+
# These values will be used to configure the ampq gem, any values
|
|
6
|
+
# omitted will let the gem use it's own defaults.
|
|
7
|
+
|
|
8
|
+
# The configuration specifies the following keys:
|
|
9
|
+
# * user - Username for the broker
|
|
10
|
+
# * pass - Password for the broker
|
|
11
|
+
# * host - Hostname where the broker is running
|
|
12
|
+
# * vhost - Vhost to connect to
|
|
13
|
+
# * port - Port where the broker is running
|
|
14
|
+
# * ssl - Use ssl or not
|
|
15
|
+
# * timeout - Timeout
|
|
16
|
+
|
|
17
|
+
defaults: &defaults
|
|
18
|
+
user: guest
|
|
19
|
+
pass: guest
|
|
20
|
+
host: localhost
|
|
21
|
+
vhost: /
|
|
22
|
+
|
|
23
|
+
development:
|
|
24
|
+
<<: *defaults
|
|
25
|
+
|
|
26
|
+
test:
|
|
27
|
+
<<: *defaults
|
|
28
|
+
|
|
29
|
+
production:
|
|
30
|
+
<<: *defaults
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'json'
|
|
3
|
+
rescue LoadError
|
|
4
|
+
$stderr.puts "Missing json gem. Please run 'bundle install'"
|
|
5
|
+
exit 1
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
require 'amqp'
|
|
10
|
+
require 'mq'
|
|
11
|
+
rescue LoadError
|
|
12
|
+
$stderr.puts "Missing amqp gem. Please uncomment the amqp section in the Gemfile and run 'bundle install' if you wish to use the AMQP participant/listener pair in ruote"
|
|
13
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Sample configuration file for a remote participant daemon
|
|
2
|
+
|
|
3
|
+
# If your using the AMQP listener/participant pair in ruote, you only
|
|
4
|
+
# need to specify the names of the queues to subscribe to.
|
|
5
|
+
|
|
6
|
+
defaults: &defaults
|
|
7
|
+
amqp:
|
|
8
|
+
queues:
|
|
9
|
+
- work1
|
|
10
|
+
#- work2
|
|
11
|
+
#- work3
|
|
12
|
+
|
|
13
|
+
development:
|
|
14
|
+
<<: *defaults
|
|
15
|
+
|
|
16
|
+
test:
|
|
17
|
+
<<: *defaults
|
|
18
|
+
|
|
19
|
+
staging:
|
|
20
|
+
<<: *defaults
|
|
21
|
+
|
|
22
|
+
production:
|
|
23
|
+
<<: *defaults
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'open-uri'
|
|
2
|
+
|
|
3
|
+
# Sample pseudo participant
|
|
4
|
+
#
|
|
5
|
+
# See http://gist.github.com/144861 for a test engine
|
|
6
|
+
class Sample < DaemonKit::RuotePseudoParticipant
|
|
7
|
+
|
|
8
|
+
on_exception :dammit
|
|
9
|
+
|
|
10
|
+
on_complete do |workitem|
|
|
11
|
+
workitem['success'] = true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def quote
|
|
15
|
+
workitem["quote"] = open("http://www.iheartquotes.com/api/v1/random").read
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def err
|
|
19
|
+
raise ArgumentError, "Does not compute"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def dammit( exception )
|
|
23
|
+
workitem["error"] = exception.message
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|