mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-26 16:26:24 +01:00
Dialyzer: Update Elixir code to satisfy dialyzer warnings
This commit is contained in:
parent
6542a70c05
commit
c7f76944f3
@ -41,7 +41,7 @@ defmodule Ejabberd.Config.Attr do
|
|||||||
"""
|
"""
|
||||||
@spec validate([attr]) :: [{:ok, attr}] | [{:error, attr, atom()}]
|
@spec validate([attr]) :: [{:ok, attr}] | [{:error, attr, atom()}]
|
||||||
def validate(attrs) when is_list(attrs), do: Enum.map(attrs, &valid_attr?/1)
|
def validate(attrs) when is_list(attrs), do: Enum.map(attrs, &valid_attr?/1)
|
||||||
def validate(attr), do: validate([attr]) |> List.first
|
def validate(attr), do: validate([attr])
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Returns the type of an attribute, given its name.
|
Returns the type of an attribute, given its name.
|
||||||
|
@ -105,11 +105,8 @@ defmodule Ejabberd.Config do
|
|||||||
Code.eval_file(file_path) |> extract_and_store_module_name()
|
Code.eval_file(file_path) |> extract_and_store_module_name()
|
||||||
|
|
||||||
# Getting start/0 config
|
# Getting start/0 config
|
||||||
Ejabberd.Config.Store.get(:module_name)
|
[module] = Ejabberd.Config.Store.get(:module_name)
|
||||||
|> case do
|
call_start_func_and_store_data(module)
|
||||||
nil -> IO.puts "[ ERR ] Configuration module not found."
|
|
||||||
[module] -> call_start_func_and_store_data(module)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Fetching git modules and install them
|
# Fetching git modules and install them
|
||||||
get_modules_parsed_in_order()
|
get_modules_parsed_in_order()
|
||||||
|
@ -13,7 +13,6 @@ defmodule Ejabberd.Config.EjabberdHook do
|
|||||||
@doc """
|
@doc """
|
||||||
Register a hook to ejabberd.
|
Register a hook to ejabberd.
|
||||||
"""
|
"""
|
||||||
@spec start(EjabberdHook.t) :: none
|
|
||||||
def start(%EjabberdHook{hook: hook, opts: opts, fun: fun}) do
|
def start(%EjabberdHook{hook: hook, opts: opts, fun: fun}) do
|
||||||
host = Keyword.get(opts, :host, :global)
|
host = Keyword.get(opts, :host, :global)
|
||||||
priority = Keyword.get(opts, :priority, 50)
|
priority = Keyword.get(opts, :priority, 50)
|
||||||
|
@ -30,7 +30,6 @@ defmodule Ejabberd.Config.EjabberdModule do
|
|||||||
a git attribute and tries to fetch the repo,
|
a git attribute and tries to fetch the repo,
|
||||||
then, it install them through :ext_mod.install/1
|
then, it install them through :ext_mod.install/1
|
||||||
"""
|
"""
|
||||||
@spec fetch_git_repos([EjabberdModule.t]) :: none()
|
|
||||||
def fetch_git_repos(modules) do
|
def fetch_git_repos(modules) do
|
||||||
modules
|
modules
|
||||||
|> Enum.filter(&is_git_module?/1)
|
|> Enum.filter(&is_git_module?/1)
|
||||||
|
@ -14,15 +14,12 @@ defmodule Ejabberd.Config.OptsFormatter do
|
|||||||
Look at how Config.get_ejabberd_opts/0 is constructed for
|
Look at how Config.get_ejabberd_opts/0 is constructed for
|
||||||
more informations.
|
more informations.
|
||||||
"""
|
"""
|
||||||
@spec format_opts_for_ejabberd([{atom(), any()}]) :: list()
|
@spec format_opts_for_ejabberd(map) :: list()
|
||||||
def format_opts_for_ejabberd(opts) do
|
def format_opts_for_ejabberd(opts) do
|
||||||
opts
|
opts
|
||||||
|> format_attrs_for_ejabberd
|
|> format_attrs_for_ejabberd
|
||||||
end
|
end
|
||||||
|
|
||||||
defp format_attrs_for_ejabberd(opts) when is_list(opts),
|
|
||||||
do: (Enum.map opts, &format_attrs_for_ejabberd/1)
|
|
||||||
|
|
||||||
defp format_attrs_for_ejabberd({:listeners, mods}),
|
defp format_attrs_for_ejabberd({:listeners, mods}),
|
||||||
do: {:listen, format_listeners_for_ejabberd(mods)}
|
do: {:listen, format_listeners_for_ejabberd(mods)}
|
||||||
|
|
||||||
@ -32,6 +29,9 @@ defmodule Ejabberd.Config.OptsFormatter do
|
|||||||
defp format_attrs_for_ejabberd({key, opts}) when is_atom(key),
|
defp format_attrs_for_ejabberd({key, opts}) when is_atom(key),
|
||||||
do: {key, opts}
|
do: {key, opts}
|
||||||
|
|
||||||
|
defp format_attrs_for_ejabberd(opts),
|
||||||
|
do: (Enum.map opts, &format_attrs_for_ejabberd/1)
|
||||||
|
|
||||||
defp format_mods_for_ejabberd(mods) do
|
defp format_mods_for_ejabberd(mods) do
|
||||||
Enum.map mods, fn %EjabberdModule{module: mod, attrs: attrs} ->
|
Enum.map mods, fn %EjabberdModule{module: mod, attrs: attrs} ->
|
||||||
{mod, attrs[:opts]}
|
{mod, attrs[:opts]}
|
||||||
|
@ -18,9 +18,9 @@ defmodule Ejabberd.Config.Validator.Attrs do
|
|||||||
@spec validate(mod_validation) :: mod_validation
|
@spec validate(mod_validation) :: mod_validation
|
||||||
def validate({modules, mod, errors}) do
|
def validate({modules, mod, errors}) do
|
||||||
errors = Enum.reduce mod.attrs, errors, fn(attr, err) ->
|
errors = Enum.reduce mod.attrs, errors, fn(attr, err) ->
|
||||||
case Attr.validate(attr) do
|
case Attr.validate([attr]) do
|
||||||
{:ok, _attr} -> err
|
[{:ok, _attr}] -> err
|
||||||
{:error, attr, cause} -> put_error(err, :attribute, {attr, cause})
|
[{:error, attr, cause}] -> put_error(err, :attribute, {attr, cause})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -4,8 +4,6 @@ defmodule Ejabberd.Config.ValidatorUtility do
|
|||||||
Imports utility functions for working with validation structures.
|
Imports utility functions for working with validation structures.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
alias Ejabberd.Config.EjabberdModule
|
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Inserts an error inside the errors collection, for the given key.
|
Inserts an error inside the errors collection, for the given key.
|
||||||
If the key doesn't exists then it creates an empty collection
|
If the key doesn't exists then it creates an empty collection
|
||||||
@ -22,7 +20,6 @@ defmodule Ejabberd.Config.ValidatorUtility do
|
|||||||
Given a list of modules it extracts and returns a list
|
Given a list of modules it extracts and returns a list
|
||||||
of the module names (which are Elixir.Module).
|
of the module names (which are Elixir.Module).
|
||||||
"""
|
"""
|
||||||
@spec extract_module_names(EjabberdModule.t) :: [atom]
|
|
||||||
def extract_module_names(modules) when is_list(modules) do
|
def extract_module_names(modules) when is_list(modules) do
|
||||||
modules
|
modules
|
||||||
|> Enum.map(&Map.get(&1, :module))
|
|> Enum.map(&Map.get(&1, :module))
|
||||||
|
@ -7,7 +7,7 @@ defmodule Ejabberd.ConfigUtil do
|
|||||||
@doc """
|
@doc """
|
||||||
Returns true when the config file is based on elixir.
|
Returns true when the config file is based on elixir.
|
||||||
"""
|
"""
|
||||||
@spec is_elixir_config(list) :: boolean
|
@spec is_elixir_config(binary) :: boolean
|
||||||
def is_elixir_config(filename) when is_list(filename) do
|
def is_elixir_config(filename) when is_list(filename) do
|
||||||
is_elixir_config(to_string(filename))
|
is_elixir_config(to_string(filename))
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user