.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Git::Raw::Filter 3pm" .TH Git::Raw::Filter 3pm 2024-01-10 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Git::Raw::Filter \- Git filter class .SH VERSION .IX Header "VERSION" version 0.90 .SH DESCRIPTION .IX Header "DESCRIPTION" A Git::Raw::Filter represents a Git filter. .PP \&\fBWARNING\fR: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog). .SH METHODS .IX Header "METHODS" .ie n .SS "create( $name, $attributes )" .el .SS "create( \f(CW$name\fP, \f(CW$attributes\fP )" .IX Subsection "create( $name, $attributes )" Create a filter. \f(CW$name\fR is a name by which the filter can be referenced. \&\f(CW$attributes\fR is a whitespace-separated list of attribute names to check for this filter (e.g. \f(CW"eol crlf text"\fR). If the attribute name is bare, it will simply be loaded and passed to the \f(CW"check"\fR callback. If it has a value (i.e. "name=value"), the attribute must match that value for the filter to be applied. .SS "callbacks( \e%callbacks )" .IX Subsection "callbacks( %callbacks )" Set the callbacks for the filter. \f(CW%callbacks\fR may specify the following callbacks. .IP \(bu 4 "initialize" .Sp Optional callback to be invoked before a filter is first used. It will be called once at most. .IP \(bu 4 "shutdown" .Sp Optional callback to be invoked when the filter is unregistered or when the library is shutting down. It will be called once at most. This may be called even if \f(CW"initialize"\fR has never been called. .IP \(bu 4 "check" .Sp Optional callback that checks if filtering is needed for a given source. The callback receives the following parameters: The filter source, a Git::Raw::Filter::Source object. .Sp If the filter should be applied, \f(CW\*(C`Git::Raw::Error\->OK\*(C'\fR should be returned. If the filter should be skipped, \f(CW\*(C`Git::Raw::Error\->PASSTHROUGH\*(C'\fR should be returned. .IP \(bu 4 "apply" .Sp Callback that actually filters data. .Sp The callback receives the following parameters: The filter source, a Git::Raw::Filter::Source object, \f(CW$from\fR the source data and \f(CW$to\fR, a scalar reference where the output should be written to. .Sp If the filter successfully writes the output, \f(CW\*(C`Git::Raw::Error\->OK\*(C'\fR should be returned. If the filter failed, \f(CW\*(C`Git::Raw::Error\->ERROR\*(C'\fR should be returned. If the filter does not want to run, \f(CW\*(C`Git::Raw::Error\->PASSTHROUGH\*(C'\fR should be returned. .IP \(bu 4 "cleanup" .Sp Optional callback to clean up after filtering has been applied. .ie n .SS "register( $priority )" .el .SS "register( \f(CW$priority\fP )" .IX Subsection "register( $priority )" Register the filter with priority \f(CW$priority\fR. .SS "unregister( )" .IX Subsection "unregister( )" Remove the filter. .SH AUTHOR .IX Header "AUTHOR" Alessandro Ghedini .PP Jacques Germishuys .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2014 Alessandro Ghedini. .PP This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. .PP See http://dev.perl.org/licenses/ for more information.