Packages
jsv
0.8.1
0.21.2
0.21.1
0.21.0
0.20.0
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.5
0.11.4
0.11.3
retired
0.11.2
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
A JSON Schema Validator with complete support for the latest specifications.
Current section
Files
Jump to
Current section
Files
lib/jsv/build_error.ex
defmodule JSV.BuildError do
@moduledoc """
A simple wrapper for errors returned from `JSV.build/2`.
"""
@inspect_limit 20
@enforce_keys [:reason, :action, :build_path]
defexception @enforce_keys
@doc """
Wraps the given term as the `reason` in a `#{inspect(__MODULE__)}` struct.
The `action` should be a `{module, function, [arg1, arg2, ..., argN]}` tuple or
a mfa tuple whenever possible.
"""
@spec of(term, term, build_path :: nil | String.t()) :: Exception.t()
def of(reason, action, build_path \\ nil) do
%__MODULE__{reason: reason, action: action, build_path: build_path}
end
@impl true
def message(%{reason: reason, action: {m, f, a}}) when is_atom(m) and is_atom(f) and (is_list(a) or is_integer(a)) do
"""
could not build JSON schema
REASON
#{inspect(reason, pretty: true, limit: @inspect_limit)}
action
#{Exception.format_mfa(m, f, a)}
"""
end
def message(e) do
"could not build JSON schema got error: #{inspect(e.reason, limit: @inspect_limit)} in context #{inspect(e.action, limit: @inspect_limit)}"
end
end