NAME

Git::Repository::Plugin::Blame::Cache - Cache the output of Git::Repository->blame().

VERSION

Version 1.4.0

SYNOPSIS

use Git::Repository::Plugin::Blame::Cache;

# Instantiate the cache for a given repository.
my $cache = Git::Repository::Plugin::Blame::Cache->new(
	repository => $repository,
);

my $repository = $cache->get_repository();

# Cache blame lines.
$cache->set_blame_lines(
	file        => $file,
	blame_lines => $blame_lines,
);

# Retrieve blame lines from the cache.
my $blame_lines = $cache->get_blame_lines(
	file => $file,
);

DESCRIPTION

Cache the output of Git::Repository::Plugin::Blame->blame() and Git::Repository->blame() by extension.

METHODS

new()

Return a cache object for the specified repository.

my $cache = Git::Repository::Plugin::Blame::Cache->new(
	repository => $repository,
	options    => $options,
);

Arguments:

  • repository (mandatory)

    A unique way to identify a repository. Typically, the root path of the repository.

  • blame_args (optional)

    A hashref of arguments used to generate the git blame output, if applicable. This avoids caching the same output for git blame and git blame -w, for example.

get_repository()

Return the unique identifier for the repository.

my $repository = $cache->get_repository();

get_blame_lines()

Retrieve git blame lines from the cache (if they exist) for a given file.

my $blame_lines = $cache->get_blame_lines(
	file => $file,
);

Arguments:

  • file (mandatory)

    The file for which you want the cached git blame output.

set_blame_lines()

Store in the cache the output of git blame for a given file.

$cache->set_blame_lines(
	file        => $file,
	blame_lines => $blame_lines,
);

Arguments:

  • file (mandatory)

    The file for which you are caching the git blame output.

  • blame_lines (mandatory)

    The output of Git::Repository::Plugin::Blame->blame().

BUGS

Please report any bugs or feature requests through the web interface at https://github.com/guillaumeaubert/Git-Repository-Plugin-Blame/issues. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Git::Repository::Plugin::Blame

You can also look for information at:

AUTHOR

Guillaume Aubert, <aubertg at cpan.org>.

COPYRIGHT & LICENSE

Copyright 2012-2017 Guillaume Aubert.

This code is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details.