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