Packages
reactor
0.15.3
1.0.2
1.0.1
1.0.0
0.17.0
0.16.0
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
An asynchronous, graph-based execution engine
Current section
Files
Jump to
Current section
Files
lib/reactor/dsl/utils.ex
defmodule Reactor.Dsl.Utils do
@moduledoc false
alias Spark.{Dsl.Verifier, Error.DslError}
@doc false
def assert_unique_step_names(step_names, dsl_state) do
step_names
|> Enum.frequencies()
|> Enum.reject(&(elem(&1, 1) == 1))
|> case do
[] ->
:ok
[{name, freq}] ->
{:error,
DslError.exception(
module: Verifier.get_persisted(dsl_state, :module),
path: [:reactor],
message: """
Reactor contains duplicate steps:
There are #{freq} steps named `#{inspect(name)}`. Step names must be unique.
"""
)}
names_and_frequencies ->
message =
names_and_frequencies
|> Enum.map(fn {name, freq} ->
" - `#{inspect(name)}` is repeated #{freq} times."
end)
{:error,
DslError.exception(
module: Verifier.get_persisted(dsl_state, :module),
path: [:reactor],
message: """
Reactor contains duplicate steps:
All step names must be unique, however you have the following duplicated step names:
#{message}
"""
)}
end
end
end