/usr/share/perl5/SVN/Web/X.pm is in libsvn-web-perl 0.63-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | #!/bin/false
package SVN::Web::X;
use strict;
use warnings;
our $VERSION = 0.54;
use Exception::Class ( 'SVN::Web::X' => { fields => ['vars'], }, );
1;
__END__
=head1 NAME
SVN::Web::X - exceptions for SVN::Web
=head1 SYNOPSIS
use SVN::Web::X;
...
SVN::Web::X->throw(error => '(error message %1)',
vars => [$var_to_interpolate]);
=head1 DESCRIPTION
SVN::Web::X implements exceptions for SVN::Web. Derived from
Exception::Class, It provides a simple mechanism for throwing
exceptions, catching them, and ensuring that friendly, localised error
messages are generated and sent to the user's browser.
=head1 USAGE IN SVN::Web ACTIONS
If an SVN::Web action that you are writing needs to stop processing
and raise an error, throw an SVN::Web::X exception.
C<throw()> takes a hash with two mandatory keys.
=over 4
=item C<error>
A string describing the error. This string should be short, and key
to a longer internationalised message.
This string may contain placeholders; %1, %2, %3, and so on. These
will be replaced by the values of the variables passed in the C<vars>
key.
By convention this string should be enclosed in parentheses, C<(> and
C<)>. This helps make them stand out in the interface, if localised
versions of the error message have not yet been written.
=item C<vars>
An array reference. The first entry in the array will replace the C<%1>
placeholder in C<error>, the second entry will replace the C<%2> placeholder,
and so on.
If there are no placeholders then pass a reference to an empty array.
=back
=head1 EXAMPLES
=head2 A simple exception, with no placeholders.
In the action:
sub run {
...
if(! frob_repo()) {
SVN::Web::X->throw(error => '(frob failed)',
vars => []);
}
...
}
In the F<en.po> file for the localised text.
msgid "(frob failed)"
msgstr "There was a problem trying to frob the repository. This "
"probably indicates a permissions problem."
=head2 An exception with placeholders
In the action:
sub run {
...
# $path is a repo path, $rev is a repo revision
my $root = $fs->revision_root($rev);
my $kind = $root->check_path($path);
if($kind == $SVN::Node::none) {
SVN::Web::X->throw(error => '(path %1 does not exist in rev %2)',
vars => [$path, $rev]);
}
}
In the F<en.po> file for the localised text.
msgid "(path %1 does not exist in rev %2)"
msgstr "The path <tt>%1</tt> could not be found in the repository "
"at revision %2. This may be a typo in the path or the revision "
"number. SVN::Web should never normally generate a link like this. "
"If you followed a link from SVN::Web (rather than from an e-mail,
"or similar) please report this as a bug."
As you can see, the localised text can be much friendlier and more
informative to the user than the error message.
=head1 COPYRIGHT
Copyright 2003-2004 by Chia-liang Kao C<< <clkao@clkao.org> >>.
Copyright 2005-2007 by Nik Clayton C<< <nik@FreeBSD.org> >>.
Copyright 2012 by Dean Hamstead C<< <dean@fragfest.com.au> >>.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See L<http://www.perl.com/perl/misc/Artistic.html>
=cut
|