Add PostgresVersion.pm method to emit the major version string

For versions before 10, this will produce dotted notation unless a
separator argument is given, in which case it is used.
This commit is contained in:
Andrew Dunstan 2021-07-29 05:58:08 -04:00
parent 5dc932f9e7
commit 1e8d89f880
No known key found for this signature in database
GPG Key ID: 99FA7FCB59FC3B81

View File

@ -32,6 +32,9 @@ PostgresVersion - class representing PostgreSQL version numbers
# interpolate in a string
my $stringyval = "version: $version";
# get the major version
my $maj = $version->major;
=head1 DESCRIPTION
PostgresVersion encapsulates Postgres version numbers, providing parsing
@ -133,4 +136,29 @@ sub _stringify
return $self->{str};
}
=pod
=over
=item major([separator => 'char'])
Returns the major version. For versions before 10 the parts are separated by
a dot unless the separator argument is given.
=back
=cut
sub major
{
my ($self, %params) = @_;
my $result = $self->{num}->[0];
if ($result + 0 < 10)
{
my $sep = $params{separator} || '.';
$result .= "$sep$self->{num}->[1]";
}
return $result;
}
1;