Provided by: libdbix-class-helpers-perl_2.036000-1_all bug

NAME

       DBIx::Class::Helper::Row::StorageValues - Keep track of stored vs in-memory row values

SYNOPSIS

        package MyApp::Schema::Result::BlogPost;

        use parent 'DBIx::Class::Core';

        __PACKAGE__->load_components(qw(Helper::Row::StorageValues));

        __PACKAGE__->table('BlogPost');
        __PACKAGE__->add_columns(
           id => {
              data_type         => 'integer',
              is_auto_increment => 1,
           },
           title => {
              data_type          => 'varchar',
              length             => 32,
              keep_storage_value => 1,
           },
           body => {
              data_type => 'text',
           },
        );

        1;

        # elsewhere:

        my $post = $blog_rs->create({
          title => 'Components for fun and profit',
          body  => '...',
        });

        $post->title('Components for fun');

        warn sprintf 'Changing title from %s to %s',
          $post->storage_value('title'), $post->title;

        $post->update;

DESCRIPTION

       This component keeps track of the value for a given column in the database.  If you change
       the column's value and do not call "update", the "storage_value" will be different; once
       "update" is called the "storage_value" will be set to the value of the accessor.  Note
       that the fact that it uses the accessor is an important distinction.  If you are using
       DBIx::Class::FilterColumn or DBIx::Class::InflateColumn it will get the non-storage or
       inflated values, respectively.

METHODS

   _has_storage_value
        $self->_has_storage_value('colname')

       returns true if we should store the storage value from the database.  Override this if
       you'd like to enable storage on all integers or something like that:

        sub _has_storage_value {
           my ( $self, $column ) = @_;

           my $info = $self->column_info($column);

           return defined $info->{data_type} && $info->{data_type} eq 'integer';
        }

   storage_value_columns
        $self->storage_value_columns

       returns a list of columns to store

   get_storage_value
        $self->get_storage_value('colname')

       returns the value for that column which is in storage

AUTHOR

       Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2020 by Arthur Axel "fREW" Schmidt.

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

perl v5.30.0                                2020-03-2DBIx::Class::Helper::Row::StorageValues(3pm)