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

NAME

DBIx::Class::Schema::Versioned::Inline::Candy - add Candy to result classes

SYNOPSIS

  package MyApp::Schema::Candy;
  use base 'DBIx::Class::Candy';

  sub base { $_[1] || 'DBIx::Class::Core' }
  sub autotable { 1 }

  sub parse_arguments {
      my $self = shift;
      my $args = $self->next::method(@_);
      push @{$args->{components}}, 'Schema::Versioned::Inline::Candy';
      return $args;
  }

  ...

  package MyApp::Schema::Result::Foo;
  use MyApp::Schema::Candy -components => ['SomeExtraComponent'];

  since '0.2',
  renamed_from 'Bar';

  column age =>
      { data_type => "integer", is_nullable => 1, till => '0.7' };

  ...

  package MyApp::Schema::Result::Bar;
  use MyApp::Schema::Candy -components => ['SomeExtraComponent'];

  till '0.2',

CANDY EXPORTS

If used in conjunction with DBIx::Class::Candy this component will export:

since $version

The equivalent of:

  __PACKAGE__->resultset_attributes(
      { versioned => { since => $version } } );

till $version

The equivalent of:

  __PACKAGE__->resultset_attributes(
      { versioned => { until => $version } } );

renamed_from $old_class

The equivalent of:

  __PACKAGE__->resultset_attributes(
      { versioned =>
          { since => $version, renamed_from => $old_table }
      });

NOTE: when using the Candy version of "renamed_from" the argument can be the name of the resultset class (actually the source_name) rather than the old table name so the following would be equivalent:

  __PACKAGE__->resultset_attributes(
      { versioned =>
          { since => '1.4', renamed_from => 'foos' }
      });


  since '1.4';
  renamed_from 'Foo';

The reasoning here is that if you user autotables => 1 then you might not know the old table name.