Packages
reactor
0.15.4
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/debug.ex
defmodule Reactor.Dsl.Debug do
@moduledoc """
The `debug` DSL entity struct.
See `d:Reactor.debug`.
"""
defstruct __identifier__: nil,
arguments: [],
description: nil,
guards: [],
level: :debug,
name: nil
alias Reactor.Dsl.{Argument, Build, Debug, Guard, WaitFor, Where}
@type t :: %Debug{
__identifier__: any,
arguments: [Argument.t()],
description: nil | String.t(),
guards: [Where.t() | Guard.t()],
level: Logger.level(),
name: atom
}
@doc false
def __entity__,
do: %Spark.Dsl.Entity{
name: :debug,
describe: """
Inserts a step which will send debug information to the `Logger`.
""",
examples: [
"""
debug :debug do
argument :suss, result(:suss_step)
end
"""
],
target: Debug,
args: [:name],
identifier: :name,
entities: [
arguments: [Argument.__entity__(), WaitFor.__entity__()],
guards: [Where.__entity__(), Guard.__entity__()]
],
recursive_as: :steps,
schema: [
name: [
type: :atom,
required: true,
doc: """
A unique identifier for the step.
"""
],
level: [
type: {:in, [:emergency, :alert, :critical, :error, :warning, :notice, :info, :debug]},
required: false,
default: :debug,
doc: """
The log level to send the debug information to.
"""
],
description: [
type: :string,
required: false,
doc: """
An optional description for the step.
"""
]
]
}
defimpl Build do
alias Reactor.{Builder, Step}
def build(debug, reactor) do
Builder.add_step(
reactor,
debug.name,
{Step.Debug, level: debug.level},
debug.arguments,
description: debug.description,
guards: debug.guards,
max_retries: 0,
ref: :step_name
)
end
def verify(_, _), do: :ok
end
end