View Source GitHubActions.Version (GitHubActions v0.2.25)
Functions for parsing and matching versions against requirements.
A version is a string in a specific format or a GitHubActions.Version
generated after
parsing via GitHubActions.Version.parse/1
.
This module is similar to Version
except that minor
and patch
may be missing
and pre
are not supported.
The Version module can also parse a range of versions.
Examples
iex> "2.0/2" |> Version.parse!() |> Enum.map(&to_string/1)
["2.0", "2.1", "2.2"]
iex> "1/3" |> Version.parse!() |> Enum.map(&to_string/1)
["1", "2", "3"]
Summary
Functions
Returns the mayor version as string.
Checks if the given version matches the specification.
Returns the minor version as string.
Parses a version string into a GitHubActions.Version
struct.
Parses a version string into a GitHubActions.Version
struct.
Returns the patch version as string.
Returns the requiement for the given version
and operator
.
Types
@type major() :: non_neg_integer() | nil
@type minor() :: non_neg_integer() | nil
@type patch() :: non_neg_integer() | nil
@type requirement() :: String.t() | Version.Requirement.t()
Functions
Returns the mayor version as string.
Examples
iex> "1.2.3" |> Version.parse!() |> Version.major()
"1"
@spec match?(version(), requirement()) :: boolean()
Checks if the given version matches the specification.
Returns true
if version
satisfies requirement
, false
otherwise.
Raises a Version.InvalidRequirementError
exception if requirement
is not
parsable, or a GitHubActions.InvalidVersionError
exception if version
is
not parsable.
Examples
iex> Version.match?("2.0", "> 1.0.0")
true
iex> Version.match?("2.0", "== 1.0.0")
false
iex> Version.match?("2.2.6", "~> 2.2.2")
true
iex> Version.match?("2.3", "~> 2.2")
true
iex> Version.match?("2", "~> 2.1.2")
false
iex> Version.match?("a.b.c", "~> 2.1.2")
** (GitHubActions.InvalidVersionError) invalid version: "a.b.c"
iex> Version.match?("2", "~~~> 2.1.2")
** (Version.InvalidRequirementError) invalid requirement: "~~~> 2.1.2"
Returns the minor version as string.
Examples
iex> "1.2.3" |> Version.parse!() |> Version.minor()
"1.2"
iex> "1" |> Version.parse!() |> Version.minor()
"1.0"
Parses a version string into a GitHubActions.Version
struct.
Examples
iex> {:ok, version} = Version.parse("1.2")
iex> version
%GitHubActions.Version{major: 1, minor: 2}
iex> Version.parse("1-2")
:error
iex> {:ok, [v1, v2, v3]} = Version.parse("2.2/4")
iex> v1
%GitHubActions.Version{major: 2, minor: 2}
iex> v2
%GitHubActions.Version{major: 2, minor: 3}
iex> v3
%GitHubActions.Version{major: 2, minor: 4}
iex> {:ok, version} = Version.parse("1.2")
iex> {:ok, version} = Version.parse(version)
iex> version
%GitHubActions.Version{major: 1, minor: 2}
Parses a version string into a GitHubActions.Version
struct.
If string
is an invalid version, a GitHubActions.InvalidVersionError is raised.
Examples
iex> Version.parse!("1")
%GitHubActions.Version{major: 1}
iex> Version.parse!("1.2")
%GitHubActions.Version{major: 1, minor: 2}
iex> Version.parse!("1.2.3")
%GitHubActions.Version{major: 1, minor: 2, patch: 3}
iex> Version.parse!("invalid")
** (GitHubActions.InvalidVersionError) invalid version: "invalid"
Returns the patch version as string.
Examples
iex> "1.2.3" |> Version.parse!() |> Version.patch()
"1.2.3"
iex> "1" |> Version.parse!() |> Version.patch()
"1.0.0"
Returns the requiement for the given version
and operator
.
Examples
iex> Version.to_requirement("1", "==")
"== 1.0.0"
iex> Version.to_requirement("1.1", ">=")
">= 1.1.0"
iex> Version.to_requirement("1.1", "~>")
"~> 1.1"
iex> Version.to_requirement("1.1.1", "~>")
"~> 1.1.1"