Fix deprecation warning for Code.ensure_compiled?/1 on Elixir 1.10

This commit is contained in:
Marcel Otto 2020-03-04 01:30:19 +01:00
parent a1071b949f
commit a047697f70
2 changed files with 11 additions and 3 deletions

View file

@ -55,8 +55,13 @@ defmodule RDF.Namespace do
defp do_resolve_term(RDF, term), do: do_resolve_term(RDF.NS.RDF, term)
defp do_resolve_term(namespace, term) do
if Code.ensure_compiled?(namespace) and
Keyword.has_key?(namespace.__info__(:functions), :__resolve_term__)do
is_module =
case Code.ensure_compiled(namespace) do
{:module, _} -> true
_ -> false
end
if is_module and Keyword.has_key?(namespace.__info__(:functions), :__resolve_term__) do
namespace.__resolve_term__(term)
else
raise RDF.Namespace.UndefinedTermError,

View file

@ -577,7 +577,10 @@ defmodule RDF.Vocabulary.Namespace do
@doc false
@spec vocabulary_namespace?(module) :: boolean
def vocabulary_namespace?(name) do
Code.ensure_compiled?(name) && function_exported?(name, :__base_iri__, 0)
case Code.ensure_compiled(name) do
{:module, name} -> function_exported?(name, :__base_iri__, 0)
_ -> false
end
end
end