Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Catalyst application skeleton

  • Loading branch information...
commit 3c724240417778931fb35c473a4929e27aa5dca9 1 parent 7d44c25
@DimaD DimaD authored
View
4 Changes
@@ -0,0 +1,4 @@
+This file documents the revision history for Perl extension Perlflow.
+
+0.01 2008-09-20 18:52:45
+ - initial revision, generated by Catalyst
View
19 Makefile.PL
@@ -0,0 +1,19 @@
+# IMPORTANT: if you delete this file your app will not work as
+# expected. you have been warned
+use inc::Module::Install;
+
+name 'Perlflow';
+all_from 'lib/Perlflow.pm';
+
+requires 'Catalyst::Runtime' => '5.7014';
+requires 'Catalyst::Plugin::ConfigLoader';
+requires 'Catalyst::Plugin::Static::Simple';
+requires 'Catalyst::Action::RenderView';
+requires 'parent';
+requires 'Config::General'; # This should reflect the config file format you've chosen
+ # See Catalyst::Plugin::ConfigLoader for supported formats
+catalyst;
+
+install_script glob('script/*.pl');
+auto_install;
+WriteAll;
View
1  README.new
@@ -0,0 +1 @@
+Run script/perlflow_server.pl to test the application.
View
69 lib/Perlflow.pm
@@ -0,0 +1,69 @@
+package Perlflow;
+
+use strict;
+use warnings;
+#I use catamoose here, so the path is custom
+use lib '/Users/dzema/src/Catalyst-Runtime/lib/';
+
+use Catalyst::Runtime '5.70';
+
+# Set flags and add plugins for the application
+#
+# -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 parent qw/Catalyst/;
+use Catalyst qw/-Debug
+ ConfigLoader
+ Static::Simple/;
+our $VERSION = '0.01';
+
+# Configure the application.
+#
+# Note that settings in Perlflow.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 a external configuration file acting as an override for
+# local deployment.
+
+__PACKAGE__->config( name => 'Perlflow' );
+
+# Start the application
+__PACKAGE__->setup();
+
+
+__PACKAGE__->config->{static}{ignore_dirs} = [qw/.svn .git/];
+__PACKAGE__->config->{static}{include_path} = [ __PACKAGE__->config->{root} ];
+
+=head1 NAME
+
+Perlflow - Catalyst based application
+
+=head1 SYNOPSIS
+
+ script/Perlflow_server.pl
+
+=head1 DESCRIPTION
+
+[enter your description here]
+
+=head1 SEE ALSO
+
+L<Perlflow::Controller::Root>, L<Catalyst>
+
+=head1 AUTHOR
+
+Dmitriy Dzema
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
View
68 lib/perlflow.pm
@@ -0,0 +1,68 @@
+package Perlflow;
+
+use strict;
+use warnings;
+use lib '/Users/dzema/src/Catalyst-Runtime/lib/';
+
+use Catalyst::Runtime '5.70';
+
+# Set flags and add plugins for the application
+#
+# -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 parent qw/Catalyst/;
+use Catalyst qw/-Debug
+ ConfigLoader
+ Static::Simple/;
+our $VERSION = '0.01';
+
+# Configure the application.
+#
+# Note that settings in Perlflow.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 a external configuration file acting as an override for
+# local deployment.
+
+__PACKAGE__->config( name => 'Perlflow' );
+
+# Start the application
+__PACKAGE__->setup();
+
+
+__PACKAGE__->config->{static}{ignore_dirs} = [qw/.svn .git/];
+__PACKAGE__->config->{static}{include_path} = [ __PACKAGE__->config->{root} ];
+
+=head1 NAME
+
+Perlflow - Catalyst based application
+
+=head1 SYNOPSIS
+
+ script/Perlflow_server.pl
+
+=head1 DESCRIPTION
+
+[enter your description here]
+
+=head1 SEE ALSO
+
+L<Perlflow::Controller::Root>, L<Catalyst>
+
+=head1 AUTHOR
+
+Dmitriy Dzema
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
View
47 lib/perlflow/Controller/Root.pm
@@ -0,0 +1,47 @@
+package Perlflow::Controller::Root;
+
+use strict;
+use warnings;
+use parent 'Catalyst::Controller';
+
+__PACKAGE__->config->{namespace} = '';
+
+=head1 NAME
+
+Perlflow::Controller::Root - Root Controller for Perlflow
+
+
+=cut
+
+sub index :Path :Args(0) {
+ my ( $self, $c ) = @_;
+
+
+}
+
+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
+
+Dmitriy Dzema
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
View
42 lib/perlflow/View/TT.pm
@@ -0,0 +1,42 @@
+package Perlflow::View::TT;
+
+use strict;
+use base 'Catalyst::View::TT';
+
+__PACKAGE__->config(
+ {
+
+ CATALYST_VAR => 'C',
+ INCLUDE_PATH => [ Perlflow->path_to('tpl') ],
+ DEBUG => undef, #all, service, context, parser, provider,
+ PRE_CHOMP => 3,
+ POST_CHOMP => 3,
+ TRIM => 1,
+ TEMPLATE_EXTENSION => '.tt'
+ }
+);
+
+=head1 NAME
+
+Perlflow::View::TT - TT View for Perlflow
+
+=head1 DESCRIPTION
+
+TT View for Perlflow.
+
+=head1 AUTHOR
+
+=head1 SEE ALSO
+
+L<Perlflow>
+
+Dmitriy Dzema
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
View
15 perlflow.yml
@@ -0,0 +1,15 @@
+name: perlflow
+Model::DB:
+ connect_info:
+ - "DBI:mysql:host=localhost;database=perlflow;mysql_enable_utf8=1"
+ - "perlflow"
+ - "perlflow"
+ -
+ AutoCommit: 1
+ quote_char: '`'
+ name_sep: '.'
+ -
+ quote_char: '`'
+ name_sep: '.'
+session:
+ expires: 2592000
View
0  interface/css/960.css → root/css/960.css
File renamed without changes
View
0  interface/css/grid.css → root/css/grid.css
File renamed without changes
View
0  interface/css/main.css → root/css/main.css
File renamed without changes
View
0  interface/css/reset.css → root/css/reset.css
File renamed without changes
View
0  interface/css/text.css → root/css/text.css
File renamed without changes
View
0  interface/css/uncompressed/960.css → root/css/uncompressed/960.css
File renamed without changes
View
0  interface/css/uncompressed/reset.css → root/css/uncompressed/reset.css
File renamed without changes
View
0  interface/css/uncompressed/text.css → root/css/uncompressed/text.css
File renamed without changes
View
BIN  root/favicon.ico
Binary file not shown
View
37 script/perlflow_cgi.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/perl -w
+
+BEGIN { $ENV{CATALYST_ENGINE} ||= 'CGI' }
+
+use strict;
+use warnings;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+use Perlflow;
+
+Perlflow->run;
+
+1;
+
+=head1 NAME
+
+Perlflow_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
View
74 script/perlflow_create.pl
@@ -0,0 +1,74 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use Catalyst::Helper;
+
+my $force = 0;
+my $mech = 0;
+my $help = 0;
+
+GetOptions(
+ 'nonew|force' => \$force,
+ 'mech|mechanize' => \$mech,
+ 'help|?' => \$help
+ );
+
+pod2usage(1) if ( $help || !$ARGV[0] );
+
+my $helper = Catalyst::Helper->new( { '.newfiles' => !$force, mech => $mech } );
+
+pod2usage(1) unless $helper->mk_component( 'perlflow', @ARGV );
+
+1;
+
+=head1 NAME
+
+perlflow_create.pl - Create a new Catalyst Component
+
+=head1 SYNOPSIS
+
+perlflow_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:
+ perlflow_create.pl controller My::Controller
+ perlflow_create.pl controller My::Controller BindLex
+ perlflow_create.pl -mechanize controller My::Controller
+ perlflow_create.pl view My::View
+ perlflow_create.pl view MyView TT
+ perlflow_create.pl view TT TT
+ perlflow_create.pl model My::Model
+ perlflow_create.pl model SomeDB DBIC::Schema MyApp::Schema create=dynamic\
+ dbi:SQLite:/tmp/my.db
+ perlflow_create.pl model AnotherDB DBIC::Schema MyApp::Schema create=static\
+ dbi:Pg:dbname=foo root 4321
+
+ See also:
+ perldoc Catalyst::Manual
+ perldoc Catalyst::Manual::Intro
+
+=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
View
79 script/perlflow_fastcgi.pl
@@ -0,0 +1,79 @@
+#!/usr/bin/perl -w
+
+BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+use Perlflow;
+
+my $help = 0;
+my ( $listen, $nproc, $pidfile, $manager, $detach, $keep_stderr );
+
+GetOptions(
+ 'help|?' => \$help,
+ 'listen|l=s' => \$listen,
+ 'nproc|n=i' => \$nproc,
+ 'pidfile|p=s' => \$pidfile,
+ 'manager|M=s' => \$manager,
+ 'daemon|d' => \$detach,
+ 'keeperr|e' => \$keep_stderr,
+);
+
+pod2usage(1) if $help;
+
+Perlflow->run(
+ $listen,
+ { nproc => $nproc,
+ pidfile => $pidfile,
+ manager => $manager,
+ detach => $detach,
+ keep_stderr => $keep_stderr,
+ }
+);
+
+1;
+
+=head1 NAME
+
+Perlflow_fastcgi.pl - Catalyst FastCGI
+
+=head1 SYNOPSIS
+
+Perlflow_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
+
+=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
View
114 script/perlflow_server.pl
@@ -0,0 +1,114 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+ $ENV{CATALYST_ENGINE} ||= 'HTTP';
+ $ENV{CATALYST_SCRIPT_GEN} = 31;
+ require Catalyst::Engine::HTTP;
+}
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+my $debug = 0;
+my $fork = 0;
+my $help = 0;
+my $host = undef;
+my $port = $ENV{PERLFLOW_PORT} || $ENV{CATALYST_PORT} || 3000;
+my $keepalive = 0;
+my $restart = $ENV{PERLFLOW_RELOAD} || $ENV{CATALYST_RELOAD} || 0;
+my $restart_delay = 1;
+my $restart_regex = '(?:/|^)(?!\.#).+(?:\.yml$|\.yaml$|\.conf|\.pm)$';
+my $restart_directory = undef;
+my $follow_symlinks = 0;
+
+my @argv = @ARGV;
+
+GetOptions(
+ 'debug|d' => \$debug,
+ 'fork' => \$fork,
+ 'help|?' => \$help,
+ 'host=s' => \$host,
+ 'port=s' => \$port,
+ 'keepalive|k' => \$keepalive,
+ 'restart|r' => \$restart,
+ 'restartdelay|rd=s' => \$restart_delay,
+ 'restartregex|rr=s' => \$restart_regex,
+ 'restartdirectory=s@' => \$restart_directory,
+ 'followsymlinks' => \$follow_symlinks,
+);
+
+pod2usage(1) if $help;
+
+if ( $restart && $ENV{CATALYST_ENGINE} eq 'HTTP' ) {
+ $ENV{CATALYST_ENGINE} = 'HTTP::Restarter';
+}
+if ( $debug ) {
+ $ENV{CATALYST_DEBUG} = 1;
+}
+
+# This is require instead of use so that the above environment
+# variables can be set at runtime.
+require Perlflow;
+
+Perlflow->run( $port, $host, {
+ argv => \@argv,
+ 'fork' => $fork,
+ keepalive => $keepalive,
+ restart => $restart,
+ restart_delay => $restart_delay,
+ restart_regex => qr/$restart_regex/,
+ restart_directory => $restart_directory,
+ follow_symlinks => $follow_symlinks,
+} );
+
+1;
+
+=head1 NAME
+
+Perlflow_server.pl - Catalyst Testserver
+
+=head1 SYNOPSIS
+
+Perlflow_server.pl [options]
+
+ Options:
+ -d -debug force debug mode
+ -f -fork handle each request in a new process
+ (defaults to false)
+ -? -help display this help and exits
+ -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 -restartdelay delay between file checks
+ -rr -restartregex regex match files that trigger
+ a restart when modified
+ (defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
+ -restartdirectory the directory to search for
+ modified files, can be set mulitple times
+ (defaults to '[SCRIPT_DIR]/..')
+ -follow_symlinks follow symlinks in search directories
+ (defaults to false. this is a no-op on Win32)
+ 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
View
53 script/perlflow_test.pl
@@ -0,0 +1,53 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+use Catalyst::Test 'Perlflow';
+
+my $help = 0;
+
+GetOptions( 'help|?' => \$help );
+
+pod2usage(1) if ( $help || !$ARGV[0] );
+
+print request($ARGV[0])->content . "\n";
+
+1;
+
+=head1 NAME
+
+Perlflow_test.pl - Catalyst Test
+
+=head1 SYNOPSIS
+
+Perlflow_test.pl [options] uri
+
+ Options:
+ -help display this help and exits
+
+ Examples:
+ Perlflow_test.pl http://localhost/some_action
+ Perlflow_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
View
7 t/01app.t
@@ -0,0 +1,7 @@
+use strict;
+use warnings;
+use Test::More tests => 2;
+
+BEGIN { use_ok 'Catalyst::Test', 'Perlflow' }
+
+ok( request('/')->is_success, 'Request should succeed' );
View
9 t/02pod.t
@@ -0,0 +1,9 @@
+use strict;
+use warnings;
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
View
9 t/03podcoverage.t
@@ -0,0 +1,9 @@
+use strict;
+use warnings;
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
View
6 t/view_TT.t
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+use Test::More tests => 1;
+
+BEGIN { use_ok 'Perlflow::View::TT' }
+
View
21 interface/index.html → tpl/index.tt
@@ -4,11 +4,11 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>PerlFlows</title>
-<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" />
-<link rel="stylesheet" type="text/css" media="all" href="css/grid.css" />
-<link rel="stylesheet" type="text/css" media="all" href="css/960.css" />
-<link rel="stylesheet" type="text/css" media="all" href="css/text.css" />
-<link rel="stylesheet" type="text/css" media="all" href="css/main.css" />
+<link rel="stylesheet" type="text/css" media="all" href="/css/reset.css" />
+<link rel="stylesheet" type="text/css" media="all" href="/css/grid.css" />
+<link rel="stylesheet" type="text/css" media="all" href="/css/960.css" />
+<link rel="stylesheet" type="text/css" media="all" href="/css/text.css" />
+<link rel="stylesheet" type="text/css" media="all" href="/css/main.css" />
</head>
<body>
@@ -16,9 +16,7 @@
<h1>PerlFlows</h1>
</div>
<div class="container_12">
- <div class="grid_8 border-right">
- <h2>Новости</h2>
-
+ <div class="grid_8">
<h5>Far East Perl Workshop</h5>
<p>26 сентября во Владивостоке пройдет второй российский воркшоп по перлу. Будет много всего интеересного. Приходите к часу во ВГУЭС в аудиторию 1013.</p>
@@ -29,8 +27,9 @@
<h5>Parrot Developer Summit</h5>
<p>15 и 16 ноября состоится первый саммит разработчиков Parrot. Важно отметить, что он пройдет в помещении Google.</p>
</div>
- <div class="grid_4 border-left">
- <h2>YAPC::TV</h2>
+ <div class="grid_3 prefix_1">
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ <!-- <h2>YAPC::TV</h2>
<h5><a href="http://yapc.tv/2008/ye/lt/lt1-02-breunung-kephra/">Say hello to Kephra</a></h5>
<p>Herbert Breunung. 13 August</p>
@@ -45,7 +44,7 @@
<p>Damian Conway. 15 August 2008</p>
<h5><a href="http://yapc.tv/2008/ye/jonathan-oop/">Object Orientation, The Perl 6 Way</a></h5>
- <p>Jonathan Worthington. 13 August 2008</p>
+ <p>Jonathan Worthington. 13 August 2008</p> -->
</div>
<!-- <div class="column border-left">
<h2>CPAN::Live</h2>
Please sign in to comment.
Something went wrong with that request. Please try again.