Packages
sobelow
0.14.1
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
@moduledoc false
use GenServer
alias Sobelow.Parse
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?(Parse.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