Current section

Files

Jump to
octopus lib interface sql input.ex
Raw

lib/interface/sql/input.ex

defmodule Octopus.Interface.Sql.Input do
alias Octopus.Utils
def call(args, %{
"transform" => %{"template" => template, "eval" => eval},
"args" => args_config
}) do
evaluated_template = EEx.eval_string(template, args: args)
if eval do
eval_code(evaluated_template)
else
{:ok, evaluated_template}
end
end
def call(args, %{"args" => %{}}) do
{:ok, []}
end
defp eval_code(code) do
quoted = Code.string_to_quoted!(code)
{value, _binding} = Code.eval_quoted(quoted)
{:ok, value}
end
end