@@ -388,19 +388,8 @@ defmodule Mox do
388388 name
389389 end
390390
391- @ compile { :no_warn_undefined , { Code , :ensure_compiled! , 1 } }
392391 defp validate_module! ( behaviour ) do
393- cond do
394- function_exported? ( Code , :ensure_compiled! , 1 ) ->
395- Code . ensure_compiled! ( behaviour )
396-
397- Code . ensure_compiled ( behaviour ) == { :module , behaviour } ->
398- behaviour
399-
400- true ->
401- raise ArgumentError ,
402- "module #{ inspect ( behaviour ) } is not available, please pass an existing module to :for"
403- end
392+ ensure_compiled! ( behaviour )
404393 end
405394
406395 defp validate_behaviour! ( behaviour ) do
@@ -769,15 +758,29 @@ defmodule Mox do
769758 end
770759
771760 defp validate_mock! ( mock ) do
772- cond do
773- Code . ensure_compiled ( mock ) != { :module , mock } ->
774- raise ArgumentError , "module #{ inspect ( mock ) } is not available"
761+ ensure_compiled! ( mock )
775762
776- not function_exported? ( mock , :__mock_for__ , 0 ) ->
777- raise ArgumentError , "module #{ inspect ( mock ) } is not a mock"
763+ unless function_exported? ( mock , :__mock_for__ , 0 ) do
764+ raise ArgumentError , "module #{ inspect ( mock ) } is not a mock"
765+ end
778766
779- true ->
780- :ok
767+ :ok
768+ end
769+
770+ @ compile { :no_warn_undefined , { Code , :ensure_compiled! , 1 } }
771+
772+ defp ensure_compiled! ( mod ) do
773+ if function_exported? ( Code , :ensure_compiled! , 1 ) do
774+ Code . ensure_compiled! ( mod )
775+ else
776+ case Code . ensure_compiled ( mod ) do
777+ { :module , mod } ->
778+ mod
779+
780+ { :error , reason } ->
781+ raise ArgumentError ,
782+ "could not load module #{ inspect ( mod ) } due to reason #{ inspect ( reason ) } "
783+ end
781784 end
782785 end
783786
0 commit comments