The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::Class::DigestColumns - Automatic digest columns

SYNOPSIS

In your "DBIx::Class" table class:

  __PACKAGE__->load_components(qw/DigestColumns .../);

  __PACKAGE__->digest_columns(qw/ password /);
  __PACKAGE__->digest_algorithm('MD5');
  __PACKAGE__->digest_encoding('base64');

Note that the component needs to be loaded before Core.

DESCRIPTION

This "DBIx::Class" component can be used to automatically insert a message digest of selected columns. By default DigestColumns will use "Digest::MD5" to insert a 128-bit hexadecimal message digest of the column value.

The length of the inserted string will be 32 and it will only contain characters from this set: '0'..'9' and 'a'..'f'.

If you would like to use a specific digest module to create your message digest, you can set "digest_algorithm":

  __PACKAGE__->digest_algorithm('SHA-1');

METHODS

digest_columns(@columns)

Takes a list of columns to be convert to a message digest during insert.

  __PACKAGE__->digest_columns(qw/ password /);

digest_algorithm($classname)

Takes the name of a digest algorithm to be used to calculate the message digest.

  __PACKAGE__->digest_algorithm('SHA-1');

Supported digest algorithms are:

  MD5
  MD4
  MD2
  SHA-1
  SHA-256
  SHA-384
  SHA-512
  CRC-16
  CRC-32
  CRC-CCITT
  HMAC-SHA-1
  HMAC-MD5
  Whirlpool
  Adler-32

digest_algorithm defaults to MD5.

digest_encoding($encoding)

Selects the encoding to use for the message digest.

  __PACKAGE__->digest_encoding('base64');

Possilbe encoding schemes are:

  binary
  hex
  base64

digest_encoding defaults to hex.

digest_auto()

  __PACKAGE__->digest_auto( 1 );

Turns on and off automatic digest columns. When on, this feature makes all UPDATEs and INSERTs automatically insert a message digest of selected columns.

The default is for digest_auto is to be on.

EXTENDED METHODS

The following "DBIx::Class::Row" methods are extended by this module:-

insert
update

SEE ALSO

"DBIx::Class", "Digest"

AUTHOR

Tom Kirkpatrick (tkp) <tkp@cpan.org>

LICENSE

You may distribute this code under the same terms as Perl itself.