Railyard v0.1.0 Railyard.Util.BlockMap View Source
Provides a DSL for creating block templates, which can be hydrated with parameters.
Link to this section Summary
Functions
Creates a DSL block, which can later be evaluated to produce a map.
Evaluates a block that was previously created with create_block
.
Evaluates a single property out of a block.
Link to this section Functions
Link to this macro
create_block(list) View Source (macro)
Creates a DSL block, which can later be evaluated to produce a map.
Examples
iex> Railyard.Util.BlockMap.create_block do
...> prop "value"
...> end
...> |> Railyard.Util.BlockMap.eval_block
[prop: "value"]
Link to this function
eval_block(context, bindings \\ []) View Source
Evaluates a block that was previously created with create_block
.
Examples
iex> Railyard.Util.BlockMap.create_block do
...> prop "value"
...> prop2 parameters.some_parameter
...> prop3 do
...> "anything"
...> end
...> end
...> |> Railyard.Util.BlockMap.eval_block(parameters: %{some_parameter: 1234})
[prop: "value", prop2: 1234, prop3: "anything"]
Link to this function
eval_property(context, bindings) View Source
Link to this function
eval_property(context, property, bindings) View Source
Evaluates a single property out of a block.
Examples
iex> Railyard.Util.BlockMap.create_block do
...> prop test: "value", test2: "value2"
...> prop2 "value2"
...> end
...> |> Railyard.Util.BlockMap.eval_property(:prop, [])
{:prop, [test: "value", test2: "value2"]}
iex> Railyard.Util.BlockMap.create_block do
...> prop "value"
...> end
...> |> Railyard.Util.BlockMap.eval_property(:prop, [])
{:prop, "value"}
iex> Railyard.Util.BlockMap.create_block do
...> prop "value", "value2"
...> end
...> |> Railyard.Util.BlockMap.eval_property(:prop, [])
{:prop, ["value", "value2"]}
iex> Railyard.Util.BlockMap.create_block do
...> prop "value", "value2"
...> end
...> |> Railyard.Util.BlockMap.eval_property(:prop2, [])
{:error, "No such property prop2"}