Created
June 16, 2012 15:48
-
-
Save bobtfish/2941747 to your computer and use it in GitHub Desktop.
Message-Passing examples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use Test::More; | |
use Catalyst::Test 'TestApp'; | |
ok( request('/')->is_success, 'Request should succeed' ); | |
done_testing(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use Test::More; | |
plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; | |
eval "use Test::Pod 1.14"; | |
plan skip_all => 'Test::Pod 1.14 required' if $@; | |
all_pod_files_ok(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use Test::More; | |
plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; | |
eval "use Test::Pod::Coverage 1.04"; | |
plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@; | |
eval "use Pod::Coverage 0.20"; | |
plan skip_all => 'Pod::Coverage 0.20 required' if $@; | |
all_pod_coverage_ok(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Run script/testapp_server.pl to test the application. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file documents the revision history for Perl extension TestApp. | |
0.01 2012-06-12 11:50:54 | |
- initial revision, generated by Catalyst |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass \ | |
--input STDIN \ | |
--output STDOUT | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input STDIN --output STOMP \ | |
--output_options \ | |
'{"destination":"/queue/foo","hostname":"localhost","port":"6163","username":"guest","password":"guest"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input STOMP --output Redis \ | |
--input_options \ | |
'{"destination":"/queue/foo","hostname":"localhost","port":"6163","username":"guest","password":"guest"}' \ | |
--output_options \ | |
'{"topic":"foo","hostname":"127.0.0.1","port":"6379"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input Redis --output AMQP \ | |
--input_options \ | |
'{"topics":["foo"],"hostname":"127.0.0.1","port":"6379"}' \ | |
--output_options \ | |
'{"hostname":"127.0.0.1","username":"guest","password":"guest","exchange_name":"foo"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input AMQP --output STDOUT \ | |
--input_options \ | |
'{"hostname":"127.0.0.1","username":"guest","password":"guest","exchange_name":"foo","queue_name":"foo"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input STDIN --output ZeroMQ \ | |
--output_options '{"socket_type":"PUSH","socket_bind":"tcp://*:5222"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input ZeroMQ --output STDOUT \ | |
--input_options '{"socket_type":"PULL","connect":"tcp://127.0.0.1:5222"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# example2-zmq-pubconnecttosub-pub | |
message-pass --input STDIN --output ZeroMQ \ | |
--output_options '{"connect":"tcp://127.0.0.1:5222"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
message-pass --input ZeroMQ --output STDOUT \ | |
--input_options '{"socket_bind":"tcp://*:5222"}' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# This is for in a second.. :) | |
export PERL5LIB="lib/:$PERL5LIB" | |
plackup -E production -s Message::Passing testapp.psgi --host 127.0.0.1 --port 5556 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
# IMPORTANT: if you delete this file your app will not work as | |
# expected. You have been warned. | |
use inc::Module::Install 1.02; | |
use Module::Install::Catalyst; # Complain loudly if you don't have | |
# Catalyst::Devel installed or haven't said | |
# 'make dist' to create a standalone tarball. | |
name 'TestApp'; | |
all_from 'lib/TestApp.pm'; | |
requires 'Catalyst::Runtime' => '5.90012'; | |
requires 'Catalyst::Plugin::ConfigLoader'; | |
requires 'Catalyst::Plugin::Static::Simple'; | |
requires 'Catalyst::Action::RenderView'; | |
requires 'Moose'; | |
requires 'namespace::autoclean'; | |
requires 'Config::General'; # This should reflect the config file format you've chosen | |
# See Catalyst::Plugin::ConfigLoader for supported formats | |
test_requires 'Test::More' => '0.88'; | |
catalyst; | |
install_script glob('script/*.pl'); | |
auto_install; | |
WriteAll; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package TestApp::Controller::Root; | |
use Moose; | |
use namespace::autoclean; | |
BEGIN { extends 'Catalyst::Controller' } | |
# | |
# Sets the actions in this controller to be registered with no prefix | |
# so they function identically to actions created in MyApp.pm | |
# | |
__PACKAGE__->config(namespace => ''); | |
=head1 NAME | |
TestApp::Controller::Root - Root Controller for TestApp | |
=head1 DESCRIPTION | |
[enter your description here] | |
=head1 METHODS | |
=head2 index | |
The root page (/) | |
=cut | |
sub index :Path :Args(0) { | |
my ( $self, $c ) = @_; | |
# Hello World | |
$c->response->body( $c->welcome_message ); | |
} | |
=head2 default | |
Standard 404 error page | |
=cut | |
sub default :Path { | |
my ( $self, $c ) = @_; | |
$c->response->body( 'Page not found' ); | |
$c->response->status(404); | |
} | |
=head2 end | |
Attempt to render a view, if needed. | |
=cut | |
sub end : ActionClass('RenderView') {} | |
=head1 AUTHOR | |
Tomas Doran | |
=head1 LICENSE | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut | |
__PACKAGE__->meta->make_immutable; | |
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
plackup -E production -s Twiggy -MPlack::App::Message::Passing -e'Plack::App::Message::Passing->new(return_address => "tcp://127.0.0.1:5555", send_address => "tcp://127.0.0.1:5556")->to_app' | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
sudo /opt/local/sbin/rabbitmq-server | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
redis-server | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# rename this file to testapp.yml and put a ':' after 'name' if | |
# you want to use YAML like in old versions of Catalyst | |
name TestApp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package TestApp; | |
use Moose; | |
use namespace::autoclean; | |
use Catalyst::Runtime 5.80; | |
# Set flags and add plugins for the application. | |
# | |
# Note that ORDERING IS IMPORTANT here as plugins are initialized in order, | |
# therefore you almost certainly want to keep ConfigLoader at the head of the | |
# list if you're using it. | |
# | |
# -Debug: activates the debug mode for very useful log messages | |
# ConfigLoader: will load the configuration from a Config::General file in the | |
# application's home directory | |
# Static::Simple: will serve static files from the application's root | |
# directory | |
use Catalyst qw/ | |
-Debug | |
ConfigLoader | |
Static::Simple | |
/; | |
extends 'Catalyst'; | |
our $VERSION = '0.01'; | |
# Configure the application. | |
# | |
# Note that settings in testapp.conf (or other external | |
# configuration file that you set up manually) take precedence | |
# over this when using ConfigLoader. Thus configuration | |
# details given here can function as a default configuration, | |
# with an external configuration file acting as an override for | |
# local deployment. | |
__PACKAGE__->config( | |
name => 'TestApp', | |
# Disable deprecated behavior needed by old applications | |
disable_component_resolution_regex_fallback => 1, | |
enable_catalyst_header => 1, # Send X-Catalyst header | |
); | |
# Start the application | |
__PACKAGE__->setup(); | |
=head1 NAME | |
TestApp - Catalyst based application | |
=head1 SYNOPSIS | |
script/testapp_server.pl | |
=head1 DESCRIPTION | |
[enter your description here] | |
=head1 SEE ALSO | |
L<TestApp::Controller::Root>, L<Catalyst> | |
=head1 AUTHOR | |
Tomas Doran | |
=head1 LICENSE | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut | |
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use strict; | |
use warnings; | |
use TestApp; | |
my $app = TestApp->apply_default_middlewares(TestApp->psgi_app); | |
$app; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use strict; | |
use warnings; | |
my $app = sub { | |
return [ 200, [ 'Content-Type' => 'text/html' ], [ 'HI YAPC::EU' ] ]; | |
}; | |
$app; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use Catalyst::ScriptRunner; | |
Catalyst::ScriptRunner->run('TestApp', 'CGI'); | |
1; | |
=head1 NAME | |
testapp_cgi.pl - Catalyst CGI | |
=head1 SYNOPSIS | |
See L<Catalyst::Manual> | |
=head1 DESCRIPTION | |
Run a Catalyst application as a cgi script. | |
=head1 AUTHORS | |
Catalyst Contributors, see Catalyst.pm | |
=head1 COPYRIGHT | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use Catalyst::ScriptRunner; | |
Catalyst::ScriptRunner->run('TestApp', 'Create'); | |
1; | |
=head1 NAME | |
testapp_create.pl - Create a new Catalyst Component | |
=head1 SYNOPSIS | |
testapp_create.pl [options] model|view|controller name [helper] [options] | |
Options: | |
--force don't create a .new file where a file to be created exists | |
--mechanize use Test::WWW::Mechanize::Catalyst for tests if available | |
--help display this help and exits | |
Examples: | |
testapp_create.pl controller My::Controller | |
testapp_create.pl --mechanize controller My::Controller | |
testapp_create.pl view My::View | |
testapp_create.pl view HTML TT | |
testapp_create.pl model My::Model | |
testapp_create.pl model SomeDB DBIC::Schema MyApp::Schema create=dynamic\ | |
dbi:SQLite:/tmp/my.db | |
testapp_create.pl model AnotherDB DBIC::Schema MyApp::Schema create=static\ | |
[Loader opts like db_schema, naming] dbi:Pg:dbname=foo root 4321 | |
[connect_info opts like quote_char, name_sep] | |
See also: | |
perldoc Catalyst::Manual | |
perldoc Catalyst::Manual::Intro | |
perldoc Catalyst::Helper::Model::DBIC::Schema | |
perldoc Catalyst::Model::DBIC::Schema | |
perldoc Catalyst::View::TT | |
=head1 DESCRIPTION | |
Create a new Catalyst Component. | |
Existing component files are not overwritten. If any of the component files | |
to be created already exist the file will be written with a '.new' suffix. | |
This behavior can be suppressed with the C<-force> option. | |
=head1 AUTHORS | |
Catalyst Contributors, see Catalyst.pm | |
=head1 COPYRIGHT | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use Catalyst::ScriptRunner; | |
Catalyst::ScriptRunner->run('TestApp', 'FastCGI'); | |
1; | |
=head1 NAME | |
testapp_fastcgi.pl - Catalyst FastCGI | |
=head1 SYNOPSIS | |
testapp_fastcgi.pl [options] | |
Options: | |
-? -help display this help and exits | |
-l --listen Socket path to listen on | |
(defaults to standard input) | |
can be HOST:PORT, :PORT or a | |
filesystem path | |
-n --nproc specify number of processes to keep | |
to serve requests (defaults to 1, | |
requires -listen) | |
-p --pidfile specify filename for pid file | |
(requires -listen) | |
-d --daemon daemonize (requires -listen) | |
-M --manager specify alternate process manager | |
(FCGI::ProcManager sub-class) | |
or empty string to disable | |
-e --keeperr send error messages to STDOUT, not | |
to the webserver | |
--proc_title Set the process title (if possible) | |
=head1 DESCRIPTION | |
Run a Catalyst application as fastcgi. | |
=head1 AUTHORS | |
Catalyst Contributors, see Catalyst.pm | |
=head1 COPYRIGHT | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
BEGIN { | |
$ENV{CATALYST_SCRIPT_GEN} = 40; | |
} | |
use Catalyst::ScriptRunner; | |
Catalyst::ScriptRunner->run('TestApp', 'Server'); | |
1; | |
=head1 NAME | |
testapp_server.pl - Catalyst Test Server | |
=head1 SYNOPSIS | |
testapp_server.pl [options] | |
-d --debug force debug mode | |
-f --fork handle each request in a new process | |
(defaults to false) | |
-? --help display this help and exits | |
-h --host host (defaults to all) | |
-p --port port (defaults to 3000) | |
-k --keepalive enable keep-alive connections | |
-r --restart restart when files get modified | |
(defaults to false) | |
-rd --restart_delay delay between file checks | |
(ignored if you have Linux::Inotify2 installed) | |
-rr --restart_regex regex match files that trigger | |
a restart when modified | |
(defaults to '\.yml$|\.yaml$|\.conf|\.pm$') | |
--restart_directory the directory to search for | |
modified files, can be set multiple times | |
(defaults to '[SCRIPT_DIR]/..') | |
--follow_symlinks follow symlinks in search directories | |
(defaults to false. this is a no-op on Win32) | |
--background run the process in the background | |
--pidfile specify filename for pid file | |
See also: | |
perldoc Catalyst::Manual | |
perldoc Catalyst::Manual::Intro | |
=head1 DESCRIPTION | |
Run a Catalyst Testserver for this application. | |
=head1 AUTHORS | |
Catalyst Contributors, see Catalyst.pm | |
=head1 COPYRIGHT | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use Catalyst::ScriptRunner; | |
Catalyst::ScriptRunner->run('TestApp', 'Test'); | |
1; | |
=head1 NAME | |
testapp_test.pl - Catalyst Test | |
=head1 SYNOPSIS | |
testapp_test.pl [options] uri | |
Options: | |
--help display this help and exits | |
Examples: | |
testapp_test.pl http://localhost/some_action | |
testapp_test.pl /some_action | |
See also: | |
perldoc Catalyst::Manual | |
perldoc Catalyst::Manual::Intro | |
=head1 DESCRIPTION | |
Run a Catalyst action from the command line. | |
=head1 AUTHORS | |
Catalyst Contributors, see Catalyst.pm | |
=head1 COPYRIGHT | |
This library is free software. You can redistribute it and/or modify | |
it under the same terms as Perl itself. | |
=cut |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment