NAME
Git::Raw::Filter - Git filter class
VERSION
version 0.90
DESCRIPTION
A Git::Raw::Filter represents a Git filter.
WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).
METHODS
create( $name, $attributes )
Create a filter. $name
is a name by which the filter can be referenced. $attributes
is a whitespace-separated list of attribute names to check for this filter (e.g. "eol crlf text"
). If the attribute name is bare, it will simply be loaded and passed to the "check"
callback. If it has a value (i.e. "name=value"), the attribute must match that value for the filter to be applied.
callbacks( \%callbacks )
Set the callbacks for the filter. %callbacks
may specify the following callbacks.
"initialize"
Optional callback to be invoked before a filter is first used. It will be called once at most.
"shutdown"
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
"initialize"
has never been called."check"
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.
If the filter should be applied,
Git::Raw::Error->OK
should be returned. If the filter should be skipped,Git::Raw::Error->PASSTHROUGH
should be returned."apply"
Callback that actually filters data.
The callback receives the following parameters: The filter source, a Git::Raw::Filter::Source object,
$from
the source data and$to
, a scalar reference where the output should be written to.If the filter successfully writes the output,
Git::Raw::Error->OK
should be returned. If the filter failed,Git::Raw::Error->ERROR
should be returned. If the filter does not want to run,Git::Raw::Error->PASSTHROUGH
should be returned."cleanup"
Optional callback to clean up after filtering has been applied.
register( $priority )
Register the filter with priority $priority
.
unregister( )
Remove the filter.
AUTHOR
Alessandro Ghedini <alexbio@cpan.org>
Jacques Germishuys <jacquesg@cpan.org>
LICENSE AND COPYRIGHT
Copyright 2014 Alessandro Ghedini.
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.
See http://dev.perl.org/licenses/ for more information.