Version-Raku
NAME
Version::Raku - Version with comparator methods
SYNOPSIS
use Version::Raku;
my $left = Version::Raku.new("1.0");
my $right = Version::Raku.new("1.1");
say $left.cmp($right); # Less
say $left."<"($right); # True
DESCRIPTION
The Version::Raku distribution provides a Version::Raku class
that is a sub-class of Version, but which provides a number of
comparator methods, similar to the ones provided by the
Version::Repology
distribution.
INSTANTIATION
my $v = Version::Raku.new("1.0");
The basic instantion of a Version::Raku object is done with
the new method, taking the version string as a positional argument.
CLASS METHODS
as-generic-range
say Version::Raku.as-generic-range(v1.2); # (== v1.2)
say Version::Raku.as-generic-range(v1.2+); # (>= v1.2)
say Version::Raku.as-generic-range('1.2.*'); # (>= v1.2 < v1.3)
Convert a Raku version specification to a generic range specification,
consisting of a Slip with a string representing a comparator ("==",
">=", "<") and a Version::Raku object, possibly repeated.
COMPARATOR METHODS
cmp
my $left = Version::Raku.new("1.0");
my $right = Version::Raku.new("1.1");
say $left.cmp($left); # Same
say $left.cmp($right); # Less
say $right.cmp($left); # More
The cmp method returns the Order of a comparison of the invocant
and the positional argument, which is either Less, Same, or
More.
eqv
my $left = Version::Raku.new("1.01");
my $right = Version::Raku.new("1.1");
say $left.eqv($right); # True
The eqv method returns whether the internal state of two
Version::Raku objects are identical.
== != < <= > >= ~~
my $left = Version::Raku.new("1.0");
my $right = Version::Raku.new("1.1");
say $left."=="($right); # False
say $left."<"($right); # True
These oddly named methods provide the same functionality as their
infix counterparts. Please note that you must use the "xx"()
syntax, because otherwise the Raku compiler will assume you've made
a syntax error.
AUTHOR
Elizabeth Mattijsen <[email protected]>
Source can be located at: https://github.com/lizmat/Version-Raku . Comments and Pull Requests are welcome.
If you like this module, or what Iām doing more generally, committing to a small sponsorship would mean a great deal to me!
COPYRIGHT AND LICENSE
Copyright 2025 Elizabeth Mattijsen
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.
# vim: expandtab shiftwidth=4