App-Info
view release on metacpan or search on metacpan
lib/App/Info/RDBMS/SQLite.pm view on Meta::CPAN
# Handle an unknown value.
unless ($self->{version}) {
# Create a validation code reference.
my $chk_version = sub {
# Try to get the version number parts.
my ($x, $y, $z) = /^(\d+)\.(\d+).(\d+)$/;
# Return false if we didn't get all three.
return unless $x and defined $y and defined $z;
# Save all three parts.
@{$self}{qw(major minor patch)} = ($x, $y, $z);
# Return true.
return 1;
};
$self->{version} = $self->unknown( key => 'sqlite version number',
callback => $chk_version);
}
return $self->{version};
}
##############################################################################
=head3 major version
my $major_version = $sqlite->major_version;
Returns the SQLite major version number. App::Info::RDBMS::SQLite parses the
version number from the system call C<`sqlite -version`> or retrieves it from
DBD::SQLite. For example, if C<version()> returns "3.0.8", then this method
returns "3".
B<Events:>
=over 4
=item info
Executing `sqlite -version`
=item error
Failed to find SQLite version with `sqlite -version`
Failed to retrieve SQLite version from DBD::SQLite
Unable to parse name from string
Unable to parse version from string
Failed to parse SQLite version parts from string
=item unknown
Enter a valid SQLite version number
=back
=cut
# This code reference is used by major_version(), minor_version(), and
# patch_version() to validate a version number entered by a user.
my $is_int = sub { /^\d+$/ };
sub major_version {
my $self = shift;
return unless $self->installed;
# Load data.
$get_version->($self) unless exists $self->{'--version'};
# Handle an unknown value.
$self->{major} = $self->unknown( key => 'sqlite major version number',
callback => $is_int)
unless $self->{major};
return $self->{major};
}
##############################################################################
=head3 minor version
my $minor_version = $sqlite->minor_version;
Returns the SQLite minor version number. App::Info::RDBMS::SQLite parses the
version number from the system call C<`sqlite -version`> or retrieves it from
DBD::SQLite. For example, if C<version()> returns "3.0.8", then this method
returns "0".
B<Events:>
=over 4
=item info
Executing `sqlite -version`
=item error
Failed to find SQLite version with `sqlite -version`
Failed to retrieve SQLite version from DBD::SQLite
Unable to parse name from string
Unable to parse version from string
Failed to parse SQLite version parts from string
=item unknown
Enter a valid SQLite version number
=back
=cut
sub minor_version {
my $self = shift;
return unless $self->installed;
# Load data.
$get_version->($self) unless exists $self->{'--version'};
# Handle an unknown value.
$self->{minor} = $self->unknown( key => 'sqlite minor version number',
( run in 0.612 second using v1.01-cache-2.11-cpan-39bf76dae61 )