diff --git a/.doctor.exs b/.doctor.exs new file mode 100644 index 0000000..e777825 --- /dev/null +++ b/.doctor.exs @@ -0,0 +1,17 @@ +%Doctor.Config{ + ignore_modules: [ + ~r/^Inspect\./, + ~r/^Example/ + ], + ignore_paths: [], + min_module_doc_coverage: 40, + min_module_spec_coverage: 0, + min_overall_doc_coverage: 50, + min_overall_spec_coverage: 0, + min_overall_moduledoc_coverage: 100, + exception_moduledoc_required: true, + raise: false, + reporter: Doctor.Reporters.Full, + struct_type_spec_required: true, + umbrella: false +} diff --git a/lib/reactor/dsl/verifier.ex b/lib/reactor/dsl/verifier.ex index 8d8955b..bb9c059 100644 --- a/lib/reactor/dsl/verifier.ex +++ b/lib/reactor/dsl/verifier.ex @@ -6,6 +6,9 @@ defmodule Reactor.Dsl.Verifier do alias Reactor.Dsl.Build alias Spark.Dsl.Verifier + @doc false + @impl true + @spec verify(Spark.Dsl.t()) :: :ok | {:error, any} def verify(dsl_state) do dsl_state |> Verifier.get_entities([:reactor]) diff --git a/lib/reactor/errors/compose_error.ex b/lib/reactor/errors/compose_error.ex index 7c81cf7..5c40046 100644 --- a/lib/reactor/errors/compose_error.ex +++ b/lib/reactor/errors/compose_error.ex @@ -1,10 +1,15 @@ defmodule Reactor.Error.ComposeError do + @moduledoc """ + An error used when attempting to compose to Reactors together. + """ defexception [:outer_reactor, :inner_reactor, :message, :arguments] import Reactor.Utils + @doc false @impl true def exception(attrs), do: struct(__MODULE__, attrs) + @doc false @impl true def message(error) do [ diff --git a/lib/reactor/errors/plan_error.ex b/lib/reactor/errors/plan_error.ex index 0640c71..930457a 100644 --- a/lib/reactor/errors/plan_error.ex +++ b/lib/reactor/errors/plan_error.ex @@ -1,10 +1,15 @@ defmodule Reactor.Error.PlanError do + @moduledoc """ + An error thrown during the planning of a Reactor. + """ defexception [:reactor, :graph, :step, :message] import Reactor.Utils + @doc false @impl true def exception(attrs), do: struct(__MODULE__, attrs) + @doc false @impl true def message(error) do [ diff --git a/lib/reactor/errors/transform_error.ex b/lib/reactor/errors/transform_error.ex index b6f2ebc..83833a1 100644 --- a/lib/reactor/errors/transform_error.ex +++ b/lib/reactor/errors/transform_error.ex @@ -1,9 +1,14 @@ defmodule Reactor.Error.TransformError do + @moduledoc """ + An error which occurs when building and running transforms. + """ defexception input: nil, output: nil, message: nil + @doc false @impl true def exception(attrs), do: struct(__MODULE__, attrs) + @doc false @impl true def message(error), do: error.message end diff --git a/mix.exs b/mix.exs index d4c0b1b..209e8c5 100644 --- a/mix.exs +++ b/mix.exs @@ -78,6 +78,7 @@ defmodule Reactor.MixProject do # Dev/Test dependencies {:credo, ">= 0.0.0", only: [:dev, :test], runtime: false}, {:dialyxir, ">= 0.0.0", only: [:dev, :test], runtime: false}, + {:doctor, "~> 0.18", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: [:dev, :test], runtime: false}, {:ex_check, "~> 0.15.0", only: [:dev, :test]}, {:git_ops, "~> 2.6.0", only: [:dev, :test]}, diff --git a/mix.lock b/mix.lock index c0cbfdc..6c8070b 100644 --- a/mix.lock +++ b/mix.lock @@ -1,7 +1,9 @@ %{ "bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"}, "credo": {:hex, :credo, "1.7.0", "6119bee47272e85995598ee04f2ebbed3e947678dee048d10b5feca139435f75", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "6839fcf63d1f0d1c0f450abc8564a57c43d644077ab96f2934563e68b8a769d7"}, + "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, "dialyxir": {:hex, :dialyxir, "1.3.0", "fd1672f0922b7648ff9ce7b1b26fcf0ef56dda964a459892ad15f6b4410b5284", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "00b2a4bcd6aa8db9dcb0b38c1225b7277dca9bc370b6438715667071a304696f"}, + "doctor": {:hex, :doctor, "0.21.0", "20ef89355c67778e206225fe74913e96141c4d001cb04efdeba1a2a9704f1ab5", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "a227831daa79784eb24cdeedfa403c46a4cb7d0eab0e31232ec654314447e4e0"}, "earmark_parser": {:hex, :earmark_parser, "1.4.31", "a93921cdc6b9b869f519213d5bc79d9e218ba768d7270d46fdcf1c01bacff9e2", [:mix], [], "hexpm", "317d367ee0335ef037a87e46c91a2269fef6306413f731e8ec11fc45a7efd059"}, "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "ex_check": {:hex, :ex_check, "0.15.0", "074b94c02de11c37bba1ca82ae5cc4926e6ccee862e57a485b6ba60fca2d8dc1", [:mix], [], "hexpm", "33848031a0c7e4209c3b4369ce154019788b5219956220c35ca5474299fb6a0e"},