From a047697f709a1b58577ada82ab2bd95dfe2a5ca9 Mon Sep 17 00:00:00 2001 From: Marcel Otto Date: Wed, 4 Mar 2020 01:30:19 +0100 Subject: [PATCH] Fix deprecation warning for Code.ensure_compiled?/1 on Elixir 1.10 --- lib/rdf/namespace.ex | 9 +++++++-- lib/rdf/vocabulary_namespace.ex | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) 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