diff --git a/lib/rdf/namespace.ex b/lib/rdf/namespace.ex index 076a1ad..97b6cce 100644 --- a/lib/rdf/namespace.ex +++ b/lib/rdf/namespace.ex @@ -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, diff --git a/lib/rdf/vocabulary_namespace.ex b/lib/rdf/vocabulary_namespace.ex index b830b90..7bd08ef 100644 --- a/lib/rdf/vocabulary_namespace.ex +++ b/lib/rdf/vocabulary_namespace.ex @@ -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