add missing newline for no-linenumber-change dzil
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / WithReasonableDefaults.pm
CommitLineData
41219a5d 1package DBIx::Class::DeploymentHandler::WithReasonableDefaults;
97aa9a74 2
41219a5d 3use Moose::Role;
4
9deabd1f 5# ABSTRACT: Make default arguments to a few methods sensible
6
41219a5d 7requires qw( prepare_upgrade prepare_downgrade database_version schema_version );
8
4a65f60b 9around prepare_upgrade => sub {
41219a5d 10 my $orig = shift;
11 my $self = shift;
be140a5f 12 my $args = shift || {};
41219a5d 13
be140a5f 14 $args->{from_version} ||= $self->database_version;
15 $args->{to_version} ||= $self->schema_version;
16 $args->{version_set} ||= [$args->{from_version}, $args->{to_version}];
41219a5d 17
be140a5f 18 $self->$orig($args);
41219a5d 19};
20
21
4a65f60b 22around prepare_downgrade => sub {
23 my $orig = shift;
24 my $self = shift;
25
be140a5f 26 my $args = shift || {};
4a65f60b 27
8d6d35e8 28 $args->{to_version} ||= $self->database_version;
29 $args->{from_version} ||= $self->schema_version;
be140a5f 30 $args->{version_set} ||= [$args->{from_version}, $args->{to_version}];
31
32 $self->$orig($args);
4a65f60b 33};
34
c8a2f7bd 35around install_resultsource => sub {
36 my $orig = shift;
37 my $self = shift;
38 my $source = shift;
39 my $version = shift || $self->to_version;
40
41 $self->$orig($source, $version);
42};
4a65f60b 43
41219a5d 441;
45
46__END__
47
48vim: ts=2 sw=2 expandtab
feca70da 49
50=head1 CONVENIENCE
51
52The whole point of this role is to set defaults for arguments of various
53methods. It's a little awesome.
54
55=head1 METHODS
56
57=head2 prepare_upgrade
58
59Defaulted args:
60
61 my $from_version = $self->database_version;
62 my $to_version = $self->schema_version;
63 my $version_set = [$from_version, $to_version];
64
65=head2 prepare_downgrade
66
67Defaulted args:
68
8d6d35e8 69 my $from_version = $self->schema_version;
70 my $to_version = $self->data_version;
71 my $version_set = [$from_version, $to_version];
feca70da 72
73=head2 install_resultsource
74
75Defaulted args:
76
77 my $version = $self->to_version;