View Source Reactor.Argument (reactor v0.9.0)

A step argument.

Summary

Functions

Build an argument which refers to to an element within a map step with an optional transformation applied.

Build an argument which refers to a reactor input with an optional transformation applied.

Build an argument which refers to the result of another step with an optional transformation applied.

Build an argument directly from a template.

Build an argument which refers to a statically defined value.

Validate that the argument source has a sub_path

Validate that the argument has a transform.

Validate that the argument is an Argument struct.

Validate that the argument contains an element.

Validate that the argument refers to a reactor input.

Validate that the argument refers to a step result.

Validate that the argument contains a static value.

Set a sub-path on the argument.

Types

@type t() :: %Reactor.Argument{
  name: atom(),
  source: Reactor.Template.t(),
  transform: nil | (any() -> any()) | {module(), keyword()} | mfa()
}

Functions

Link to this function

from_element(name, element_name, transform \\ nil)

View Source
@spec from_element(atom(), atom(), nil | (any() -> any())) :: t()

Build an argument which refers to to an element within a map step with an optional transformation applied.

Example

iex> Argument.from_element(:argument_name, &Atom.to_string/1)
Link to this function

from_input(name, input_name, transform \\ nil)

View Source
@spec from_input(atom(), atom(), nil | (any() -> any())) :: t()

Build an argument which refers to a reactor input with an optional transformation applied.

Example

iex> Argument.from_input(:argument_name, :input_name, &String.to_integer/1)
Link to this function

from_result(name, result_name, transform \\ nil)

View Source
@spec from_result(atom(), any(), nil | (any() -> any())) :: t()

Build an argument which refers to the result of another step with an optional transformation applied.

Example

iex> Argument.from_result(:argument_name, :step_name, &Atom.to_string/1)
Link to this function

from_template(name, template, transform \\ nil)

View Source
@spec from_template(atom(), Reactor.Template.t(), nil | (any() -> any())) :: t()

Build an argument directly from a template.

Example

iex> Argument.from_template(:argument_name, Reactor.Dsl.Argument.input(:input_name))
Link to this function

from_value(name, value, transform \\ nil)

View Source
@spec from_value(atom(), any(), nil | (any() -> any())) :: t()

Build an argument which refers to a statically defined value.

Example

iex> Argument.from_value(:argument_name, 10)
Link to this macro

has_sub_path(argument)

View Source (macro)

Validate that the argument source has a sub_path

Link to this macro

has_transform(argument)

View Source (macro)

Validate that the argument has a transform.

Link to this macro

is_argument(argument)

View Source (macro)

Validate that the argument is an Argument struct.

Link to this macro

is_from_element(argument)

View Source (macro)

Validate that the argument contains an element.

Link to this macro

is_from_input(argument)

View Source (macro)

Validate that the argument refers to a reactor input.

Link to this macro

is_from_result(argument)

View Source (macro)

Validate that the argument refers to a step result.

Link to this macro

is_from_value(argument)

View Source (macro)

Validate that the argument contains a static value.

Link to this function

sub_path(argument, sub_path)

View Source
@spec sub_path(t(), [any()]) :: t()

Set a sub-path on the argument.

Example

iex> Argument.from_value(:example, :value)
...> |> Argument.sub_path([:nested, :values])