---
name: "Git::Raw::Filter"
section: "3pm"
platform: "linux"
package: "libgit-raw-perl"
version: "0.90+ds-3+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Git::Raw::Filter"
---

# Git::Raw::Filter(3pm)

Git filter class

## 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.
