Fix to_string for Version with numeric pre
Signed-off-by: Eric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>
This commit is contained in:
@@ -519,10 +519,21 @@ end
|
||||
|
||||
defimpl String.Chars, for: Version do
|
||||
def to_string(version) do
|
||||
pre = unless Enum.empty?(pre = version.pre), do: "-#{pre}"
|
||||
pre = pre(version.pre)
|
||||
build = if build = version.build, do: "+#{build}"
|
||||
"#{version.major}.#{version.minor}.#{version.patch}#{pre}#{build}"
|
||||
end
|
||||
|
||||
defp pre([]) do
|
||||
""
|
||||
end
|
||||
|
||||
defp pre(pre) do
|
||||
Enum.map(["-"] ++ pre, fn
|
||||
int when is_integer(int) -> Integer.to_string(int)
|
||||
string when is_binary(string) -> string
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
defimpl Inspect, for: Version do
|
||||
|
||||
@@ -72,6 +72,7 @@ defmodule VersionTest do
|
||||
assert V.parse("1.0.0-dev") |> elem(1) |> to_string == "1.0.0-dev"
|
||||
assert V.parse("1.0.0+lol") |> elem(1) |> to_string == "1.0.0+lol"
|
||||
assert V.parse("1.0.0-dev+lol") |> elem(1) |> to_string == "1.0.0-dev+lol"
|
||||
assert V.parse("1.0.0-0") |> elem(1) |> to_string == "1.0.0-0"
|
||||
end
|
||||
|
||||
test "invalid match" do
|
||||
|
||||
Reference in New Issue
Block a user