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