Browse Source

fix credo issues

merge-requests/1/head
Egor Kislitsyn 5 years ago
parent
commit
b2dd560888
1 changed files with 20 additions and 15 deletions
  1. +20
    -15
      lib/auto_linker/parser.ex

+ 20
- 15
lib/auto_linker/parser.ex View File

@ -66,7 +66,7 @@ defmodule AutoLinker.Parser do
@default_opts ~w(url)a
def parse(input, opts \\ %{})
def parse(input, opts) when is_binary(input), do: parse({input, nil}, opts) |> elem(0)
def parse(input, opts) when is_binary(input), do: {input, nil} |> parse(opts) |> elem(0)
def parse(input, list) when is_list(list), do: parse(input, Enum.into(list, %{}))
def parse(input, opts) do
@ -126,17 +126,22 @@ defmodule AutoLinker.Parser do
end
defp do_parse({text, user_acc}, %{url: _} = opts) do
if (exclude = Map.get(opts, :exclude_pattern, false)) && String.starts_with?(text, exclude) do
{text, user_acc}
else
do_parse(
{text, user_acc},
opts,
{"", "", :parsing},
&check_and_link/3
)
end
|> do_parse(Map.delete(opts, :url))
input =
with exclude <- Map.get(opts, :exclude_patterns),
true <- is_list(exclude),
true <- String.starts_with?(text, exclude) do
{text, user_acc}
else
_ ->
do_parse(
{text, user_acc},
opts,
{"", "", :parsing},
&check_and_link/3
)
end
do_parse(input, Map.delete(opts, :url))
end
defp do_parse(input, %{hashtag: true} = opts) do
@ -310,7 +315,7 @@ defmodule AutoLinker.Parser do
if Regex.match?(@invalid_url, buffer) do
false
else
Regex.match?(@match_scheme, buffer) |> is_valid_tld?(buffer)
@match_scheme |> Regex.match?(buffer) |> is_valid_tld?(buffer)
end
end
@ -318,7 +323,7 @@ defmodule AutoLinker.Parser do
if Regex.match?(@invalid_url, buffer) do
false
else
Regex.match?(@match_url, buffer) |> is_valid_tld?(buffer)
@match_url |> Regex.match?(buffer) |> is_valid_tld?(buffer)
end
end
@ -326,7 +331,7 @@ defmodule AutoLinker.Parser do
if Regex.match?(@invalid_url, buffer) do
false
else
Regex.match?(@match_email, buffer) |> is_valid_tld?(buffer)
@match_email |> Regex.match?(buffer) |> is_valid_tld?(buffer)
end
end


Loading…
Cancel
Save