Code::TidyAll::CacheModel(3pm)

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

VERSION
version 0.85

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