| File: | blib/lib/App/Rgit.pm |
| Coverage: | 93.5% |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package App::Rgit; | ||||||
| 2 | |||||||
| 3 | 5 5 5 | 408282 18 280 | use strict; | ||||
| 4 | 5 5 5 | 54 13 332 | use warnings; | ||||
| 5 | |||||||
| 6 | 5 5 5 | 1737 19 236 | use App::Rgit::Command; | ||||
| 7 | 5 5 5 | 1803 20 1810 | use App::Rgit::Config; | ||||
| 8 | |||||||
| 9 - 17 | =head1 NAME App::Rgit - Backend that supports the rgit utility. =head1 VERSION Version 0.08 =cut | ||||||
| 18 | |||||||
| 19 | our $VERSION = '0.08'; | ||||||
| 20 | |||||||
| 21 - 33 | =head1 DESCRIPTION Backend that supports the L<rgit> utility. This is an internal class to L<rgit>. =head1 METHODS =head2 C<< new root => $root, git => $git, cmd => $cmd, args => \@args >> Creates a new L<App::Rgit> object that's bound to execute the command C<$cmd> on all the C<git> repositories inside C<$root> with C<@args> as arguments and C<$git> as C<git> executable. =cut | ||||||
| 34 | |||||||
| 35 | sub new { | ||||||
| 36 | 18 | 1 | 680843 | my $class = shift; | |||
| 37 | 18 | 225 | $class = ref $class || $class; | ||||
| 38 | |||||||
| 39 | 18 | 209 | my %args = @_; | ||||
| 40 | |||||||
| 41 | 18 | 494 | my $config = App::Rgit::Config->new( | ||||
| 42 | root => $args{root}, | ||||||
| 43 | git => $args{git}, | ||||||
| 44 | debug => $args{debug}, | ||||||
| 45 | ); | ||||||
| 46 | 16 | 215 | return unless defined $config; | ||||
| 47 | |||||||
| 48 | 16 | 530 | my $command = App::Rgit::Command->new( | ||||
| 49 | cmd => $args{cmd}, | ||||||
| 50 | args => $args{args}, | ||||||
| 51 | policy => $args{policy}, | ||||||
| 52 | ); | ||||||
| 53 | 16 | 82 | return unless defined $command; | ||||
| 54 | |||||||
| 55 | 16 | 610 | bless { | ||||
| 56 | config => $config, | ||||||
| 57 | command => $command, | ||||||
| 58 | }, $class; | ||||||
| 59 | } | ||||||
| 60 | |||||||
| 61 - 65 | =head2 C<run> Actually run the commands. =cut | ||||||
| 66 | |||||||
| 67 | sub run { | ||||||
| 68 | 9 | 1 | 7622 | my $self = shift; | |||
| 69 | |||||||
| 70 | 9 | 277 | $self->command->run($self->config); | ||||
| 71 | } | ||||||
| 72 | |||||||
| 73 - 79 | =head2 C<config> =head2 C<command> Read-only accessors. =cut | ||||||
| 80 | |||||||
| 81 | BEGIN { | ||||||
| 82 | 5 5 9 9 | 1 1 | 18 773 274 286 | eval "sub $_ { \$_[0]->{$_} }" for qw/config command/; | |||
| 83 | } | ||||||
| 84 | |||||||
| 85 - 112 | =head1 SEE ALSO
L<rgit>.
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
You can contact me by mail or on C<irc.perl.org> (vincent).
=head1 BUGS
Please report any bugs or feature requests to C<bug-rgit at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit>.
I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc App::Rgit
=head1 COPYRIGHT & LICENSE
Copyright 2008,2009,2010 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
=cut | ||||||
| 113 | |||||||
| 114 | 1; # End of App::Rgit | ||||||