Packages

A Serializer From Theopse Organization

Current section

Files

Jump to
theopse_serializer Library theaserialzer.ex
Raw

Library/theaserialzer.ex

defmodule Theaserialzer do
@moduledoc """
Documentation for `Theaserialzer`.
"""
@doc """
Decode.
## Examples
iex> Theaserialzer.decode("1,2,3-5,6,9,11-15")
[1,2,3,4,5,6,9,11,12,13,14,15]
"""
def decode(string) do
string
|> String.split(",")
|> Enum.map(fn item ->
~r/\d+-\d+/
|> Regex.match?(item)
|> case do
false ->
item
|> String.to_integer()
true ->
~r/-/
|> Regex.replace(item, "..")
|> Code.eval_string()
|> case do
{value,_} ->
value
|> Enum.to_list()
end
end
end)
|> List.flatten()
end
end