around prepare_upgrade => sub {
my $orig = shift;
my $self = shift;
+ my $args = shift || {};
- my $from_version = shift || $self->database_version;
- my $to_version = shift || $self->schema_version;
- my $version_set = shift || [$from_version, $to_version];
+ $args->{from_version} ||= $self->database_version;
+ $args->{to_version} ||= $self->schema_version;
+ $args->{version_set} ||= [$args->{from_version}, $args->{to_version}];
- $self->$orig($from_version, $to_version, $version_set);
+ $self->$orig($args);
};
my $orig = shift;
my $self = shift;
- my $from_version = shift || $self->database_version;
- my $to_version = shift || $self->schema_version;
- my $version_set = shift || [$to_version, $from_version];
+ my $args = shift || {};
- $self->$orig($from_version, $to_version, $version_set);
+ $args->{to_version} ||= $self->database_version;
+ $args->{from_version} ||= $self->schema_version;
+ $args->{version_set} ||= [$args->{from_version}, $args->{to_version}];
+
+ $self->$orig($args);
};
around install_resultsource => sub {
__END__
vim: ts=2 sw=2 expandtab
+
+=head1 CONVENIENCE
+
+The whole point of this role is to set defaults for arguments of various
+methods. It's a little awesome.
+
+=head1 METHODS
+
+=head2 prepare_upgrade
+
+Defaulted args:
+
+ my $from_version = $self->database_version;
+ my $to_version = $self->schema_version;
+ my $version_set = [$from_version, $to_version];
+
+=head2 prepare_downgrade
+
+Defaulted args:
+
+ my $from_version = $self->schema_version;
+ my $to_version = $self->data_version;
+ my $version_set = [$from_version, $to_version];
+
+=head2 install_resultsource
+
+Defaulted args:
+
+ my $version = $self->to_version;