Packages
quantum
1.6.0
3.5.3
3.5.2
retired
3.5.1
retired
3.5.0
3.4.0
3.3.0
3.2.0
3.1.0
3.0.2
3.0.1
3.0.0
3.0.0-rc.3
3.0.0-rc.2
3.0.0-rc.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
retired
2.3.0
retired
2.2.7
2.2.6
2.2.5
retired
2.2.4
retired
2.2.3
retired
2.2.2
retired
2.2.1
retired
2.2.0
retired
2.1.3
retired
2.1.2
retired
2.1.1
retired
2.1.0
retired
2.1.0-beta.1
retired
2.0.4
retired
2.0.3
retired
2.0.2
retired
2.0.1
retired
2.0.0
retired
2.0.0-beta.2
retired
2.0.0-beta.1
retired
1.9.3
retired
1.9.2
retired
1.9.1
retired
1.9.0
retired
1.8.1
retired
1.8.0
retired
1.7.1
retired
1.7.0
retired
1.6.1
retired
1.6.0
retired
1.5.0
retired
1.4.0
retired
1.3.2
retired
1.3.1
retired
1.3.0
retired
1.2.4
retired
1.2.3
retired
1.2.2
retired
1.2.1
retired
1.2.0
retired
1.1.0
retired
1.0.4
retired
1.0.3
retired
1.0.2
retired
1.0.1
retired
1.0.0
retired
Cron-like job scheduler for Elixir.
Retired package: Security issue - v1 is no longer supported
Current section
Files
Jump to
Current section
Files
lib/quantum/parser.ex
defmodule Quantum.Parser do
@moduledoc false
def parse("*/" <> i, min, max) do
min..max |> only_multiplier_of i
end
def parse(e, min, max) do
[r|i] = e |> String.split("/")
[x|y] = r |> String.split("-")
v = x |> String.to_integer
do_parse(v, y, i, min, max) |> Enum.filter &(&1 in min..max)
end
defp do_parse(v, [], [], _, _), do: [v]
defp do_parse(v, [], [i], _, _) do
[rem(v, i |> String.to_integer)]
end
defp do_parse(v, [y], [], min, max) do
t = y |> String.to_integer
if v < t do
Enum.to_list(v..t)
else
Enum.to_list(min..t) ++ Enum.to_list(v..max)
end
end
defp do_parse(v, y, [i], min, max) do
do_parse(v, y, [], min, max) |> only_multiplier_of i
end
defp only_multiplier_of(coll, i) do
x = i |> String.to_integer
coll |> Enum.filter &(rem(&1, x) == 0)
end
end