X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FApp%2FRgit%2FRepository.pm;h=1d8d490c16ea6c6e84db0ade55e760612fa1bcbe;hb=4aef5e093a78f0f437e835f129a32e66e78e23e5;hp=77428c3b63bd13f4912d64ae079d1331f771455e;hpb=c86be01d791b2919e100f9a7357597dfdfe1e273;p=perl%2Fmodules%2Frgit.git diff --git a/lib/App/Rgit/Repository.pm b/lib/App/Rgit/Repository.pm index 77428c3..1d8d490 100644 --- a/lib/App/Rgit/Repository.pm +++ b/lib/App/Rgit/Repository.pm @@ -14,21 +14,17 @@ 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. =head1 VERSION -Version 0.05 +Version 0.06 =cut -our $VERSION = '0.05'; +our $VERSION = '0.06'; =head1 DESCRIPTION @@ -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