NAME

Code::TidyAll::CacheModel - Caching model for Code::TidyAll

VERSION

version 0.84

SYNOPSIS

my $cache_model = Cody::TidyAll::CacheModel->new(
    cache_engine => Code::TidyAll::Cache->new(...),
    path         => '/path/to/file/to/cache',
);

# check cache
print 'Yes!' if $cache_model->is_cached;

# update cache
$cache_model->clear_file_contents;
$cache_model->update;

# update the cache when you know the file contents
$cache_model->file_contents($new_content);
$cache_model->update;

# force removal from cache
$cache_model->remove;

DESCRIPTION

A cache model for Code::TidyAll. Different subclasses can employ different caching techniques.

The basic model implemented here is simple; It stores a hash key of the file contents keyed by a hash key of the file's path.

METHODS

This class has the following methods:

Code::TidyAll::CacheModel->new(%params)

The constructor accepts the following attributes:

  • full_path

    The full path to the cache file on disk. This is required.

  • path

    The local path to the file (i.e. what the cache system will consider the canonical name of the file).

  • cache_engine

    A Code::TidyAll::Cache compatible instance. This can be omitted if no caching is actually being done.

  • base_sig

    A base signature. This defaults to an empty string.

  • file_contents

    The contents of the file being cached. This can be omitted, in which case it will be loaded as needed.

  • is_cached

    A boolean indicating if this file is cached. By default this is computed by checking that the cache key and cache value match what is in the cache.

$model->full_path

The value passed to the constructor.

$model->path

The value passed to the constructor.

$model->cache_engine

The value passed to the constructor.

$model->base_sig

The value passed to the constructor or the default value, an empty string.

$model->file_contents

The file contents, which will be loaded from the file system if needed.

$model->is_cached

A boolean indicating whether the path is currently in the cache.

$model->cache_key

The computed cache key for the file.

$model->cache_value

The computed cache value for the file.

$model->update

Updates the cache.

$model->remove

Attempts to remove the value from the cache.

SUPPORT

Bugs may be submitted at https://github.com/houseabsolute/perl-code-tidyall/issues.

SOURCE

The source code repository for Code-TidyAll can be found at https://github.com/houseabsolute/perl-code-tidyall.

AUTHORS

  • Jonathan Swartz <swartz@pobox.com>

  • Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 - 2023 by Jonathan Swartz.

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

The full text of the license can be found in the LICENSE file included with this distribution.