gitalist_local.conf
Makefile
Makefile.old
-blib/
-inc/
+blib*
+inc*
pm_to_blib
MANIFEST
MANIFEST.bak
requires 'Catalyst::Plugin::StackTrace';
requires 'Catalyst::Plugin::Static::Simple';
requires 'Catalyst::Action::RenderView';
+requires 'Catalyst::Component::InstancePerContext';
+requires 'Catalyst::View::TT';
requires 'Template';
requires 'Template::Provider::Encoding';
-requires 'Catalyst::View::TT';
requires 'Template::Plugin::Cycle';
requires 'Config::General';
exit_at_end_of_request_if_updated => 0,
);
-{
- my $version;
- my $get_version = sub {
- my $gitdir = shift->path_to('.git');
- my $version = qx{cat "$gitdir/`cut -d' ' -f2 .git/HEAD`"};
- chomp $version;
- return $version;
- };
-
- after setup_finalize => sub {
- my $c = shift;
- $version = $c->$get_version
- if $c->config->{exit_at_end_of_request_if_updated};
- };
- after handle_request => sub {
- my $c = shift;
- if ($version) {
- my $new = $c->$get_version;
- exit 0 unless $new eq $version;
- }
- };
-}
-
-
# Start the application
__PACKAGE__->setup();
use Moose;
use Gitalist::Git::Repo;
+use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
use namespace::autoclean;
-sub COMPONENT {
- my ($class, $app, $config) = @_;
+extends 'Catalyst::Model';
- Gitalist::Git::Repo->new($config);
+with 'Catalyst::Component::InstancePerContext';
+
+has repo_dir => (
+ isa => NonEmptySimpleStr,
+ is => 'ro',
+ required => 1,
+);
+
+sub build_per_context_instance {
+ my ($self, $app) = @_;
+
+ Gitalist::Git::Repo->new(repo_dir => $self->repo_dir);
}
__PACKAGE__->meta->make_immutable;
+