From: Tomas Doran Date: Sat, 14 Nov 2009 16:07:32 +0000 (+0000) Subject: Merge branch 'master' of git://github.com/broquaint/Gitalist X-Git-Tag: 0.000000_01~4^2~6 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4b27b1f68af28565e28206124a53396158c68397;hp=9286798f4f1604ff17d935b3c57a6d7a3bd04f91;p=catagits%2FGitalist.git Merge branch 'master' of git://github.com/broquaint/Gitalist * 'master' of git://github.com/broquaint/Gitalist: We do actually really want per context instances of the model. Otherwise we grab the repository list once, and once only - which isn't quite what we wanted :) Fix .gitignore Remove crap which doesn't work --- diff --git a/.gitignore b/.gitignore index 52c6254..968a0c5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,8 +6,8 @@ META.yml gitalist_local.conf Makefile Makefile.old -blib/ -inc/ +blib* +inc* pm_to_blib MANIFEST MANIFEST.bak diff --git a/Makefile.PL b/Makefile.PL index 3024796..54f98be 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -22,10 +22,11 @@ requires 'Catalyst::Plugin::ConfigLoader'; 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'; diff --git a/lib/Gitalist.pm b/lib/Gitalist.pm index 64329fa..9ca78a7 100644 --- a/lib/Gitalist.pm +++ b/lib/Gitalist.pm @@ -24,30 +24,6 @@ __PACKAGE__->config( 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(); diff --git a/lib/Gitalist/Model/GitRepos.pm b/lib/Gitalist/Model/GitRepos.pm index 5e0bddb..e780f5b 100644 --- a/lib/Gitalist/Model/GitRepos.pm +++ b/lib/Gitalist/Model/GitRepos.pm @@ -2,12 +2,24 @@ package Gitalist::Model::GitRepos; 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; +