X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FApp%2FRgit%2FRepository.pm;h=1d8d490c16ea6c6e84db0ade55e760612fa1bcbe;hb=c4df0499041f9632e0b0bdfcf563b28565b503d0;hp=94e9dde0a6692a8d1a2350770d20c38fee3430f4;hpb=787cc59d827d22afa8a3100daa42e5b9df3fe50d;p=perl%2Fmodules%2Frgit.git diff --git a/lib/App/Rgit/Repository.pm b/lib/App/Rgit/Repository.pm index 94e9dde..1d8d490 100644 --- a/lib/App/Rgit/Repository.pm +++ b/lib/App/Rgit/Repository.pm @@ -14,10 +14,6 @@ BEGIN { *WIFSIGNALED = sub { shift() & 127 } unless eval { WIFSIGNALED(0); 1 }; } -use Object::Tiny qw/fake repo bare name work/; - -use App::Rgit::Utils qw/validate/; - =head1 NAME App::Rgit::Repository - Class representing a Git repository. @@ -46,14 +42,19 @@ If the C option is passed, C<$dir> isn't checked to be a valid C repo =cut sub new { - my ($class, %args) = &validate; + my $class = shift; + $class = ref $class || $class; + + my %args = @_; + my $dir = $args{dir}; $dir = abs_path $dir if defined $dir and not file_name_is_absolute $dir; $dir = cwd unless defined $dir; + my ($repo, $bare, $name, $work); if ($args{fake}) { $repo = $work = $dir; - } else { + } else { my @tries = ($dir); my @chunks = splitdir $dir; my $last = pop @chunks; @@ -79,13 +80,14 @@ sub new { $work = $repo; } } - $class->SUPER::new( + + bless { fake => !!$args{fake}, repo => $repo, bare => $bare, name => $name, work => $work, - ); + }, $class; } =head2 C @@ -180,7 +182,13 @@ sub run { =head2 C -Accessors. +Read-only accessors. + +=cut + +BEGIN { + eval "sub $_ { \$_[0]->{$_} }" for qw/fake repo bare name work/; +} =head1 SEE ALSO @@ -189,7 +197,7 @@ L. =head1 AUTHOR Vincent Pit, C<< >>, L. - + You can contact me by mail or on C (vincent). =head1 BUGS