---
name: "Code::TidyAll::CacheModel"
section: "3pm"
platform: "linux"
package: "libcode-tidyall-perl"
version: "0.84~ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Code::TidyAll::CacheModel"
---

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