Packages
altworx_runbox
13.0.2
25.0.0
24.0.0
23.1.0
23.0.0
22.2.0
22.1.0
22.0.0
21.2.0
21.1.2
21.1.1
21.1.0
21.0.0
20.0.0
19.0.0
18.0.0
17.2.0
17.1.0
17.0.1
17.0.0
16.2.0
16.1.0
16.0.0
15.0.0
14.1.0
14.0.1
14.0.0
13.0.3
13.0.2
13.0.1
13.0.0
12.1.0
12.0.0
11.0.1
11.0.0
10.0.0
9.0.0
8.0.0
7.0.1
7.0.0
6.0.0
5.0.0
4.0.0
3.0.0
2.1.0
2.0.0
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.1.3
0.1.2
0.1.1
0.1.0
Runbox is a library for running Altworx scenarios.
Current section
Files
Jump to
Current section
Files
lib/runbox/scenario/template/simple.ex
defmodule Runbox.Scenario.Template.Simple do
@moduledoc group: :internal
@moduledoc """
Template inspector for Simple scenario.
Validates and provides basic information about a Simple scenario template.
"""
@behaviour Runbox.Scenario.TemplateInspector
alias Runbox.Scenario.Simple
@impl true
def valid_template?(module) do
behaviours =
:attributes
|> module.module_info()
|> Keyword.get_values(:behaviour)
|> List.flatten()
Enum.member?(behaviours, Runbox.Scenario.Simple)
end
@impl true
def template_info(module) do
{:ok, topics} = Simple.input_topics(module)
%{topics: Enum.uniq(convert_topics(topics))}
end
defp convert_topics(topics) do
Enum.map(topics, fn
{topic, :input} -> {:input_topic, topic}
{topic, :load} -> {:load_topic, topic}
topic when is_binary(topic) -> {:input_topic, topic}
end)
end
end