Packages
sobelow
0.7.8
0.14.1
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.1
0.11.0
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
Security-focused static analysis for Elixir & the Phoenix framework
Current section
Files
Jump to
Current section
Files
lib/sobelow/meta_log.ex
defmodule Sobelow.MetaLog do
use GenServer
alias Sobelow.Utils
def start_link() do
GenServer.start_link(__MODULE__, :ok, name: __MODULE__)
end
def add_templates(templates) do
GenServer.cast(__MODULE__, {:add, templates})
end
def get_templates() do
GenServer.call(__MODULE__, :get_templates)
end
def delete_raw(var, template_path) do
GenServer.cast(__MODULE__, {:delete_raw, {var, template_path}})
end
def init(:ok) do
{:ok, %{:templates => %{}}}
end
def handle_cast({:add, templates}, log) do
{:noreply, Map.put(log, :templates, templates)}
end
def handle_cast({:delete_raw, {var, template_path}}, log) do
raw_funs =
get_in(log, [:templates, template_path, :raw])
|> Enum.reject(fn raw ->
Enum.member?(Utils.get_template_vars([raw]), var)
end)
{:noreply, put_in(log, [:templates, template_path, :raw], raw_funs)}
end
def handle_call(:get_templates, _from, log) do
{:reply, log.templates, log}
end
end