File Coverage

blib/lib/Git/Raw/Error.pm
Criterion Covered Total %
statement 31 32 96.8
branch 3 4 75.0
condition n/a
subroutine 10 11 90.9
pod n/a
total 44 47 93.6


line stmt bran cond sub pod time code
1             package Git::Raw::Error;
2             $Git::Raw::Error::VERSION = '0.90';
3 36     36   231 use strict;
  36         64  
  36         1017  
4 36     36   163 use warnings;
  36         67  
  36         769  
5 36     36   167 use Carp;
  36         72  
  36         6033  
6              
7             use overload
8 16     16   21762 '""' => sub { return $_[0] -> message.' at '.$_[0] -> file.' line '.$_[0] -> line },
9 0     0   0 '0+' => sub { return $_[0] -> code },
10 2     2   38241 'bool' => sub { return $_[0] -> _is_error },
11 36     36   41463 'fallback' => 1;
  36         35382  
  36         382  
12              
13             sub AUTOLOAD {
14             # This AUTOLOAD is used to 'autoload' constants from the constant()
15             # XS function.
16              
17 30     30   18246 my $constname;
18 30         38 our $AUTOLOAD;
19 30         198 ($constname = $AUTOLOAD) =~ s/.*:://;
20 30 50       99 croak "&Git::Raw::Error::constant not defined" if $constname eq '_constant';
21 30         156 my ($error, $val) = _constant($constname);
22 30 100       65 if ($error) { croak $error; }
  1         174  
23             {
24 36     36   6191 no strict 'refs';
  36         74  
  36         2849  
  29         39  
25 29     36   174 *$AUTOLOAD = sub { $val };
  36         6815  
26             }
27 29         102 goto &$AUTOLOAD;
28             }
29              
30 36     36   238 use Git::Raw;
  36         65  
  36         1824  
31              
32             =head1 NAME
33              
34             Git::Raw::Error - Error class
35              
36             =head1 VERSION
37              
38             version 0.90
39              
40             =head1 DESCRIPTION
41              
42             A L represents an error. A L may be the result
43             of a libgit2 error, or may be generated internally due to misuse of the API.
44              
45             B: The API of this module is unstable and may change without warning
46             (any change will be appropriately documented in the changelog).
47              
48             =head1 METHODS
49              
50             =head2 message( )
51              
52             Error message.
53              
54             =head2 file( )
55              
56             Caller file.
57              
58             =head2 line( )
59              
60             Caller line.
61              
62             =head2 code( )
63              
64             Error code.
65              
66             =head2 category( )
67              
68             The category (class) or source of the error.
69              
70             =head1 CONSTANTS
71              
72             =head2 OK
73              
74             No error.
75              
76             =head2 ERROR
77              
78             Generic error.
79              
80             =head2 ENOTFOUND
81              
82             The eequested object could not be found.
83              
84             =head2 EEXISTS
85              
86             The object already exists.
87              
88             =head2 EAMBIGUOUS
89              
90             More than one object matches.
91              
92             =head2 EBUFS
93              
94             Output buffer too short to hold data.
95              
96             =head2 EBAREREPO
97              
98             The operation is is not allowed on a bare repository.
99              
100             =head2 EUNBORNBRANCH
101              
102             C refers to a branch with no commits.
103              
104             =head2 EUNMERGED
105              
106             A merge is in progress.
107              
108             =head2 ENONFASTFORWARD
109              
110             Reference was not fast-forwardable.
111              
112             =head2 EINVALIDSPEC
113              
114             Name/ref spec was not in a valid format.
115              
116             =head2 ECONFLICT
117              
118             Checkout conflicts prevented operation.
119              
120             =head2 ELOCKED
121              
122             Lock file prevented operation.
123              
124             =head2 EMODIFIED
125              
126             Reference value does not match expected.
127              
128             =head2 EAUTH
129              
130             Authentication error.
131              
132             =head2 ECERTIFICATE
133              
134             Server certificate is invalid.
135              
136             =head2 EAPPLIED
137              
138             Patch/merge has already been applied.
139              
140             =head2 EPEEL
141              
142             The requested peel operation is not possible.
143              
144             =head2 EEOF
145              
146             Unepected C.
147              
148             =head2 EINVALID
149              
150             Invalid operation or input.
151              
152             =head2 EUNCOMMITTED
153              
154             Uncommited changes in index prevented operation.
155              
156             =head2 EDIRECTORY
157              
158             The operation is not valid for a directory.
159              
160             =head2 EMERGECONFLICT
161              
162             A merge conflict exists and cannot continue.
163              
164             =head2 PASSTHROUGH
165              
166             Passthrough
167              
168             =head1 AUTHOR
169              
170             Alessandro Ghedini
171              
172             Jacques Germishuys
173              
174             =head1 LICENSE AND COPYRIGHT
175              
176             Copyright 2014 Alessandro Ghedini.
177              
178             This program is free software; you can redistribute it and/or modify it
179             under the terms of either: the GNU General Public License as published
180             by the Free Software Foundation; or the Artistic License.
181              
182             See http://dev.perl.org/licenses/ for more information.
183              
184             =cut
185              
186             1; # End of Git::Raw::Error