Merge branch 'master' of git://github.com/broquaint/Gitalist
Tomas Doran [Sat, 14 Nov 2009 16:07:32 +0000 (16:07 +0000)]
* '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

.gitignore
Makefile.PL
lib/Gitalist.pm
lib/Gitalist/Model/GitRepos.pm

index 52c6254..968a0c5 100644 (file)
@@ -6,8 +6,8 @@ META.yml
 gitalist_local.conf
 Makefile
 Makefile.old
-blib/
-inc/
+blib*
+inc*
 pm_to_blib
 MANIFEST
 MANIFEST.bak
index 3024796..54f98be 100644 (file)
@@ -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';
index 64329fa..9ca78a7 100644 (file)
@@ -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();
 
index 5e0bddb..e780f5b 100644 (file)
@@ -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;
+