Packages
mazurka
0.1.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.3.39
0.3.38
0.3.37
0.3.36
0.3.35
0.3.34
0.3.33
0.3.32
0.3.31
0.3.30
0.3.29
0.3.28
0.3.27
0.3.26
0.3.25
0.3.24
0.3.23
0.3.22
0.3.21
0.3.20
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
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.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
hypermedia api toolkit
Current section
Files
Jump to
Current section
Files
lib/mazurka/compiler/utils.ex
defmodule Mazurka.Compiler.Utils do
# this is a pretty nasty hack since elixir can't just compile something without loading it
def quoted_to_beam(ast, src) do
before = Code.compiler_options
updated = Keyword.put(before, :ignore_module_conflict, :true)
Code.compiler_options(updated)
[{name, bin}] = Code.compile_quoted(ast, src)
Code.compiler_options(before)
maybe_reload(name)
{name, bin}
end
defp maybe_reload(module) do
case :code.which(module) do
atom when is_atom(atom) ->
# Module is likely in memory, we purge as an attempt to reload it
:code.purge(module)
:code.delete(module)
Code.ensure_loaded?(module)
:ok
_file ->
:ok
end
end
end