package Git::Wrapper::Exception; # ABSTRACT: Exception class for Git::Wrapper $Git::Wrapper::Exception::VERSION = '0.048'; use 5.006; use strict; use warnings; sub new { my $class = shift; bless { @_ } => $class } use overload ( q("") => '_stringify', fallback => 1, ); sub _stringify { my ($self) = @_; my $error = $self->error; return $error if $error =~ /\S/; return "git exited non-zero but had no output to stderr"; } sub output { join "", map { "$_\n" } @{ shift->{output} } } sub error { join "", map { "$_\n" } @{ shift->{error} } } sub status { shift->{status} } 1; __END__ =pod =encoding UTF-8 =head1 NAME Git::Wrapper::Exception - Exception class for Git::Wrapper =head1 VERSION version 0.048 =head1 SYNOPSIS A new error object may be generated and thrown as follows: die Git::Wrapper::Exception->new( output => \@out, # STDOUT error => \@err, # STERR status => $? >> 8, # git process exist status ); =head1 METHODS =head2 new The standard constructor for this class. =head2 error Returns the full error message reported by the resulting git command sent to C. =head2 output Returns the full output generated by the git command that is sent to C. =head2 status Returns the non-zero exit code reported by git on error. =head1 SEE ALSO =head2 L In particular, see the section on Error handling. =head1 REPORTING BUGS & OTHER WAYS TO CONTRIBUTE The code for this module is maintained on GitHub, at L. If you have a patch, feel free to fork the repository and submit a pull request. If you find a bug, please open an issue on the project at GitHub. (We also watch the L queue for Git::Wrapper, so feel free to use that bug reporting system if you prefer) =head1 AUTHORS =over 4 =item * Hans Dieter Pearcey =item * Chris Prather =item * John SJ Anderson =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2014 by Hans Dieter Pearcey. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut