README
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); # TrueDESCRIPTION
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); # MoreThe 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); # TrueThe 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); # TrueThese 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.