Reference

Code::TidyAll::CacheModel(3pm)

Caching model for Code::TidyAll

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 <[email protected]>

•

Dave Rolsky <[email protected]>

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.

History