queso-daemon-kit 0.1.7.10
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/Configuration.txt +110 -0
- data/Deployment.txt +113 -0
- data/History.txt +97 -0
- data/Logging.txt +92 -0
- data/Manifest.txt +166 -0
- data/PostInstall.txt +6 -0
- data/README.rdoc +130 -0
- data/Rakefile +37 -0
- data/RuoteParticipants.txt +113 -0
- data/TODO.txt +37 -0
- data/app_generators/daemon_kit/USAGE +7 -0
- data/app_generators/daemon_kit/daemon_kit_generator.rb +161 -0
- data/app_generators/daemon_kit/templates/README +48 -0
- data/app_generators/daemon_kit/templates/Rakefile +6 -0
- data/app_generators/daemon_kit/templates/bin/daemon.erb +7 -0
- data/app_generators/daemon_kit/templates/config/arguments.rb +12 -0
- data/app_generators/daemon_kit/templates/config/boot.rb +68 -0
- data/app_generators/daemon_kit/templates/config/environment.rb +23 -0
- data/app_generators/daemon_kit/templates/config/environments/development.rb +2 -0
- data/app_generators/daemon_kit/templates/config/environments/production.rb +2 -0
- data/app_generators/daemon_kit/templates/config/environments/test.rb +2 -0
- data/app_generators/daemon_kit/templates/config/post-daemonize/readme +5 -0
- data/app_generators/daemon_kit/templates/config/pre-daemonize/readme +12 -0
- data/app_generators/daemon_kit/templates/lib/daemon.rb +2 -0
- data/app_generators/daemon_kit/templates/libexec/daemon.erb +18 -0
- data/app_generators/daemon_kit/templates/script/console +3 -0
- data/app_generators/daemon_kit/templates/script/destroy +14 -0
- data/app_generators/daemon_kit/templates/script/generate +14 -0
- data/bin/daemon_kit +18 -0
- data/daemon_generators/amqp/USAGE +5 -0
- data/daemon_generators/amqp/amqp_generator.rb +65 -0
- data/daemon_generators/amqp/templates/config/amqp.yml +28 -0
- data/daemon_generators/amqp/templates/config/initializers/amqp.rb +7 -0
- data/daemon_generators/amqp/templates/libexec/daemon.rb +37 -0
- data/daemon_generators/cron/USAGE +5 -0
- data/daemon_generators/cron/cron_generator.rb +64 -0
- data/daemon_generators/cron/templates/config/initializers/cron.rb +11 -0
- data/daemon_generators/cron/templates/libexec/daemon.rb +43 -0
- data/daemon_generators/cucumber/USAGE +11 -0
- data/daemon_generators/cucumber/cucumber_generator.rb +38 -0
- data/daemon_generators/cucumber/templates/cucumber +8 -0
- data/daemon_generators/cucumber/templates/cucumber.rake +13 -0
- data/daemon_generators/cucumber/templates/cucumber_environment.rb +2 -0
- data/daemon_generators/cucumber/templates/env.rb +7 -0
- data/daemon_generators/deploy_capistrano/deploy_capistrano_generator.rb +35 -0
- data/daemon_generators/deploy_capistrano/templates/Capfile +10 -0
- data/daemon_generators/deploy_capistrano/templates/USAGE +10 -0
- data/daemon_generators/deploy_capistrano/templates/config/deploy.rb +53 -0
- data/daemon_generators/deploy_capistrano/templates/config/deploy/production.rb +6 -0
- data/daemon_generators/deploy_capistrano/templates/config/deploy/staging.rb +6 -0
- data/daemon_generators/deploy_capistrano/templates/config/environments/staging.rb +0 -0
- data/daemon_generators/jabber/USAGE +5 -0
- data/daemon_generators/jabber/jabber_generator.rb +65 -0
- data/daemon_generators/jabber/templates/config/initializers/jabber.rb +7 -0
- data/daemon_generators/jabber/templates/config/jabber.yml +26 -0
- data/daemon_generators/jabber/templates/libexec/daemon.rb +27 -0
- data/daemon_generators/nanite_agent/USAGE +5 -0
- data/daemon_generators/nanite_agent/nanite_agent_generator.rb +68 -0
- data/daemon_generators/nanite_agent/templates/config/initializers/nanite_agent.rb +6 -0
- data/daemon_generators/nanite_agent/templates/config/nanite.yml +35 -0
- data/daemon_generators/nanite_agent/templates/lib/actors/sample.rb +11 -0
- data/daemon_generators/nanite_agent/templates/libexec/daemon.rb +31 -0
- data/daemon_generators/rspec/USAGE +5 -0
- data/daemon_generators/rspec/rspec_generator.rb +55 -0
- data/daemon_generators/rspec/templates/spec.rb +11 -0
- data/daemon_generators/rspec/templates/spec/spec.opts +1 -0
- data/daemon_generators/rspec/templates/spec/spec_helper.rb +21 -0
- data/daemon_generators/rspec/templates/tasks/rspec.rake +21 -0
- data/daemon_generators/ruote/USAGE +5 -0
- data/daemon_generators/ruote/ruote_generator.rb +67 -0
- data/daemon_generators/ruote/templates/config/amqp.yml +30 -0
- data/daemon_generators/ruote/templates/config/initializers/ruote.rb +13 -0
- data/daemon_generators/ruote/templates/config/ruote.yml +23 -0
- data/daemon_generators/ruote/templates/lib/daemon.rb +4 -0
- data/daemon_generators/ruote/templates/lib/sample.rb +26 -0
- data/daemon_generators/ruote/templates/libexec/daemon.rb +33 -0
- data/lib/daemon_kit.rb +62 -0
- data/lib/daemon_kit/abstract_logger.rb +235 -0
- data/lib/daemon_kit/amqp.rb +38 -0
- data/lib/daemon_kit/application.rb +187 -0
- data/lib/daemon_kit/arguments.rb +165 -0
- data/lib/daemon_kit/commands/console.rb +38 -0
- data/lib/daemon_kit/config.rb +108 -0
- data/lib/daemon_kit/console_daemon.rb +2 -0
- data/lib/daemon_kit/core_ext.rb +1 -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/cron.rb +48 -0
- data/lib/daemon_kit/cucumber/world.rb +38 -0
- data/lib/daemon_kit/deployment/capistrano.rb +482 -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 +60 -0
- data/lib/daemon_kit/error_handlers/mail.rb +85 -0
- data/lib/daemon_kit/exceptions.rb +15 -0
- data/lib/daemon_kit/initializer.rb +438 -0
- data/lib/daemon_kit/jabber.rb +170 -0
- data/lib/daemon_kit/nanite.rb +7 -0
- data/lib/daemon_kit/nanite/agent.rb +56 -0
- data/lib/daemon_kit/pid_file.rb +61 -0
- data/lib/daemon_kit/ruote_participants.rb +119 -0
- data/lib/daemon_kit/ruote_pseudo_participant.rb +68 -0
- data/lib/daemon_kit/ruote_workitem.rb +169 -0
- data/lib/daemon_kit/safety.rb +85 -0
- data/lib/daemon_kit/tasks.rb +2 -0
- data/lib/daemon_kit/tasks/environment.rake +10 -0
- data/lib/daemon_kit/tasks/framework.rake +120 -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/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 +79 -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/rspec.rake +21 -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_jabber_generator.rb +49 -0
- data/test/test_nanite_agent_generator.rb +49 -0
- data/test/test_ruote_generator.rb +45 -0
- data/vendor/tmail-1.2.3/tmail.rb +5 -0
- data/vendor/tmail-1.2.3/tmail/address.rb +426 -0
- data/vendor/tmail-1.2.3/tmail/attachments.rb +46 -0
- data/vendor/tmail-1.2.3/tmail/base64.rb +46 -0
- data/vendor/tmail-1.2.3/tmail/compat.rb +41 -0
- data/vendor/tmail-1.2.3/tmail/config.rb +67 -0
- data/vendor/tmail-1.2.3/tmail/core_extensions.rb +63 -0
- data/vendor/tmail-1.2.3/tmail/encode.rb +581 -0
- data/vendor/tmail-1.2.3/tmail/header.rb +960 -0
- data/vendor/tmail-1.2.3/tmail/index.rb +9 -0
- data/vendor/tmail-1.2.3/tmail/interface.rb +1130 -0
- data/vendor/tmail-1.2.3/tmail/loader.rb +3 -0
- data/vendor/tmail-1.2.3/tmail/mail.rb +578 -0
- data/vendor/tmail-1.2.3/tmail/mailbox.rb +495 -0
- data/vendor/tmail-1.2.3/tmail/main.rb +6 -0
- data/vendor/tmail-1.2.3/tmail/mbox.rb +3 -0
- data/vendor/tmail-1.2.3/tmail/net.rb +248 -0
- data/vendor/tmail-1.2.3/tmail/obsolete.rb +132 -0
- data/vendor/tmail-1.2.3/tmail/parser.rb +1476 -0
- data/vendor/tmail-1.2.3/tmail/port.rb +379 -0
- data/vendor/tmail-1.2.3/tmail/quoting.rb +118 -0
- data/vendor/tmail-1.2.3/tmail/require_arch.rb +58 -0
- data/vendor/tmail-1.2.3/tmail/scanner.rb +49 -0
- data/vendor/tmail-1.2.3/tmail/scanner_r.rb +261 -0
- data/vendor/tmail-1.2.3/tmail/stringio.rb +280 -0
- data/vendor/tmail-1.2.3/tmail/utils.rb +337 -0
- data/vendor/tmail-1.2.3/tmail/version.rb +39 -0
- data/vendor/tmail.rb +13 -0
- metadata +281 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated jabber 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/jabber.yml' accordingly or this
|
|
17
|
+
# daemon won't work as advertised.
|
|
18
|
+
|
|
19
|
+
# This block gets called every time a message has been received from a
|
|
20
|
+
# valid master.
|
|
21
|
+
DaemonKit::Jabber.received_messages do |message|
|
|
22
|
+
# Simple echo service
|
|
23
|
+
DaemonKit::Jabber.deliver( message.from, message.body )
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Run our Jabber bot
|
|
27
|
+
DaemonKit::Jabber.run
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
class NaniteAgentGenerator < RubiGen::Base
|
|
2
|
+
|
|
3
|
+
default_options :author => nil
|
|
4
|
+
|
|
5
|
+
attr_reader :name
|
|
6
|
+
|
|
7
|
+
def initialize(runtime_args, runtime_options = {})
|
|
8
|
+
super
|
|
9
|
+
usage if args.empty?
|
|
10
|
+
@name = args.shift
|
|
11
|
+
extract_options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def manifest
|
|
15
|
+
record do |m|
|
|
16
|
+
# Ensure appropriate folder(s) exists
|
|
17
|
+
m.directory ''
|
|
18
|
+
|
|
19
|
+
# Create stubs
|
|
20
|
+
# m.template "template.rb.erb", "some_file_after_erb.rb"
|
|
21
|
+
# m.template_copy_each ["template.rb", "template2.rb"]
|
|
22
|
+
# m.template_copy_each ["template.rb", "template2.rb"], "some/path"
|
|
23
|
+
# m.file "file", "some_file_copied"
|
|
24
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"]
|
|
25
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"], "some/path"
|
|
26
|
+
|
|
27
|
+
# Copy over our configs
|
|
28
|
+
m.directory 'lib'
|
|
29
|
+
m.directory 'lib/actors'
|
|
30
|
+
m.file 'lib/actors/sample.rb', 'lib/actors/sample.rb'
|
|
31
|
+
m.directory 'config'
|
|
32
|
+
m.template 'config/nanite.yml', 'config/nanite.yml'
|
|
33
|
+
m.directory 'config/initializers'
|
|
34
|
+
m.template 'config/initializers/nanite_agent.rb', "config/initializers/#{name}.rb"
|
|
35
|
+
|
|
36
|
+
# Copy over our daemon
|
|
37
|
+
m.directory 'libexec'
|
|
38
|
+
m.template 'libexec/daemon.rb', "libexec/#{name}-daemon.rb"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
protected
|
|
43
|
+
def banner
|
|
44
|
+
<<-EOS
|
|
45
|
+
Creates a ...
|
|
46
|
+
|
|
47
|
+
USAGE: #{$0} #{spec.name} name
|
|
48
|
+
EOS
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def add_options!(opts)
|
|
52
|
+
# opts.separator ''
|
|
53
|
+
# opts.separator 'Options:'
|
|
54
|
+
# For each option below, place the default
|
|
55
|
+
# at the top of the file next to "default_options"
|
|
56
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
|
57
|
+
# "Some comment about this option",
|
|
58
|
+
# "Default: none") { |o| options[:author] = o }
|
|
59
|
+
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def extract_options
|
|
63
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
|
64
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
|
65
|
+
# raw instance variable value.
|
|
66
|
+
# @author = options[:author]
|
|
67
|
+
end
|
|
68
|
+
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
|
+
username: nanite
|
|
21
|
+
password: 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,55 @@
|
|
|
1
|
+
|
|
2
|
+
class RspecGenerator < RubiGen::Base
|
|
3
|
+
|
|
4
|
+
attr_reader :gem_name, :module_name
|
|
5
|
+
|
|
6
|
+
def initialize(runtime_args, runtime_options = {})
|
|
7
|
+
super
|
|
8
|
+
@destination_root = File.expand_path(destination_root)
|
|
9
|
+
@gem_name = base_name
|
|
10
|
+
@module_name = @gem_name.camelcase
|
|
11
|
+
extract_options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def manifest
|
|
15
|
+
record do |m|
|
|
16
|
+
# Ensure appropriate folder(s) exists
|
|
17
|
+
m.directory 'spec'
|
|
18
|
+
m.directory 'tasks'
|
|
19
|
+
|
|
20
|
+
m.template 'spec.rb', "spec/#{gem_name}_spec.rb"
|
|
21
|
+
|
|
22
|
+
m.template_copy_each %w( spec.opts spec_helper.rb ), 'spec'
|
|
23
|
+
m.file_copy_each %w( rspec.rake ), 'tasks'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
protected
|
|
28
|
+
def banner
|
|
29
|
+
<<-EOS
|
|
30
|
+
Install rspec BDD testing support.
|
|
31
|
+
|
|
32
|
+
Includes a rake task (tasks/rspec.rake) to be loaded by the root Rakefile,
|
|
33
|
+
which provides a "spec" task.
|
|
34
|
+
|
|
35
|
+
USAGE: #{$0} [options]
|
|
36
|
+
EOS
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def add_options!(opts)
|
|
40
|
+
# opts.separator ''
|
|
41
|
+
# opts.separator 'Options:'
|
|
42
|
+
# For each option below, place the default
|
|
43
|
+
# at the top of the file next to "default_options"
|
|
44
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
|
45
|
+
# "Some comment about this option",
|
|
46
|
+
# "Default: none") { |x| options[:author] = x }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def extract_options
|
|
50
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
|
51
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
|
52
|
+
# raw instance variable value.
|
|
53
|
+
# @author = options[:author]
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--colour
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'spec'
|
|
3
|
+
rescue LoadError
|
|
4
|
+
require 'rubygems'
|
|
5
|
+
gem 'rspec'
|
|
6
|
+
require 'spec'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
require File.dirname(__FILE__) + '/../config/environment'
|
|
10
|
+
DaemonKit::Application.running!
|
|
11
|
+
|
|
12
|
+
Spec::Runner.configure do |config|
|
|
13
|
+
# == Mock Framework
|
|
14
|
+
#
|
|
15
|
+
# RSpec uses it's own mocking framework by default. If you prefer to
|
|
16
|
+
# use mocha, flexmock or RR, uncomment the appropriate line:
|
|
17
|
+
#
|
|
18
|
+
config.mock_with :mocha
|
|
19
|
+
# config.mock_with :flexmock
|
|
20
|
+
# config.mock_with :rr
|
|
21
|
+
end
|
|
@@ -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/"
|
|
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,67 @@
|
|
|
1
|
+
class RuoteGenerator < RubiGen::Base
|
|
2
|
+
|
|
3
|
+
default_options :author => nil
|
|
4
|
+
|
|
5
|
+
attr_reader :name
|
|
6
|
+
|
|
7
|
+
def initialize(runtime_args, runtime_options = {})
|
|
8
|
+
super
|
|
9
|
+
usage if args.empty?
|
|
10
|
+
@name = args.shift
|
|
11
|
+
extract_options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def manifest
|
|
15
|
+
record do |m|
|
|
16
|
+
# Ensure appropriate folder(s) exists
|
|
17
|
+
m.directory ''
|
|
18
|
+
|
|
19
|
+
# Create stubs
|
|
20
|
+
# m.template "template.rb.erb", "some_file_after_erb.rb"
|
|
21
|
+
# m.template_copy_each ["template.rb", "template2.rb"]
|
|
22
|
+
# m.template_copy_each ["template.rb", "template2.rb"], "some/path"
|
|
23
|
+
# m.file "file", "some_file_copied"
|
|
24
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"]
|
|
25
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"], "some/path"
|
|
26
|
+
|
|
27
|
+
m.directory 'config'
|
|
28
|
+
m.template 'config/amqp.yml', 'config/amqp.yml'
|
|
29
|
+
m.template 'config/ruote.yml', 'config/ruote.yml'
|
|
30
|
+
m.directory 'config/initializers'
|
|
31
|
+
m.template 'config/initializers/ruote.rb', "config/initializers/#{name}.rb"
|
|
32
|
+
|
|
33
|
+
m.directory 'lib'
|
|
34
|
+
m.template 'lib/daemon.rb', "lib/#{name}.rb"
|
|
35
|
+
m.template 'lib/sample.rb', 'lib/sample.rb'
|
|
36
|
+
m.directory 'libexec'
|
|
37
|
+
m.template 'libexec/daemon.rb', "libexec/#{name}-daemon.rb"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
protected
|
|
42
|
+
def banner
|
|
43
|
+
<<-EOS
|
|
44
|
+
Creates a ...
|
|
45
|
+
|
|
46
|
+
USAGE: #{$0} #{spec.name} name
|
|
47
|
+
EOS
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def add_options!(opts)
|
|
51
|
+
# opts.separator ''
|
|
52
|
+
# opts.separator 'Options:'
|
|
53
|
+
# For each option below, place the default
|
|
54
|
+
# at the top of the file next to "default_options"
|
|
55
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
|
56
|
+
# "Some comment about this option",
|
|
57
|
+
# "Default: none") { |o| options[:author] = o }
|
|
58
|
+
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def extract_options
|
|
62
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
|
63
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
|
64
|
+
# raw instance variable value.
|
|
65
|
+
# @author = options[:author]
|
|
66
|
+
end
|
|
67
|
+
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 'gem install json'"
|
|
5
|
+
exit 1
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
require 'amqp'
|
|
10
|
+
require 'mq'
|
|
11
|
+
rescue LoadError
|
|
12
|
+
$stderr.puts "Missing amqp gem. Please run 'gem install amqp' 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
|