commit: 14484e867139fb9c6f68c14e38648e49d6cd79c7
parent: 8b9a6d4f8b3fb6504f1250fe593534e65f78da74
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Wed, 27 Feb 2019 01:12:50 +0100
accept schemed URLs by default & add AutoLink.Parser.is_url?/1
Diffstat:
2 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/lib/auto_linker/parser.ex b/lib/auto_linker/parser.ex
@@ -27,8 +27,6 @@ defmodule AutoLinker.Parser do
@invalid_url ~r/(\.\.+)|(^(\d+\.){1,2}\d+$)/
- @match_url ~r{^[\w\.-]+(?:\.[\w\.-]+)+[\w\-\._~%:/?#[\]@!\$&'\(\)\*\+,;=.]+$}
-
@match_scheme ~r{^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~%:/?#[\]@!\$&'\(\)\*\+,;=.]+$}
@match_phone ~r"((?:x\d{2,7})|(?:(?:\+?1\s?(?:[.-]\s?)?)?(?:\(\s?(?:[2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s?\)|(?:[2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s?(?:[.-]\s?)?)(?:[2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s?(?:[.-]\s?)?(?:[0-9]{4}))"
@@ -261,7 +259,7 @@ defmodule AutoLinker.Parser do
def check_and_link(buffer, opts, _user_acc) do
buffer
- |> is_url?(opts[:scheme])
+ |> is_url?()
|> link_url(buffer, opts)
end
@@ -302,19 +300,15 @@ defmodule AutoLinker.Parser do
end
# @doc false
- def is_url?(buffer, true) do
- if Regex.match?(@invalid_url, buffer) do
- false
- else
- @match_scheme |> Regex.match?(buffer)
- end
+ def is_url?(buffer, _) do
+ is_url(buffer)
end
- def is_url?(buffer, _) do
+ def is_url?(buffer) do
if Regex.match?(@invalid_url, buffer) do
false
else
- @match_url |> Regex.match?(buffer)
+ @match_scheme |> Regex.match?(buffer)
end
end
diff --git a/test/parser_test.exs b/test/parser_test.exs
@@ -5,31 +5,31 @@ defmodule AutoLinker.ParserTest do
import AutoLinker.Parser
describe "is_url" do
- test "valid scheme true" do
+ test "valid scheme" do
valid_scheme_urls()
|> Enum.each(fn url ->
- assert is_url?(url, true)
+ assert is_url?(url)
end)
end
- test "invalid scheme true" do
+ test "invalid scheme" do
invalid_scheme_urls()
|> Enum.each(fn url ->
- refute is_url?(url, true)
+ refute is_url?(url)
end)
end
- test "valid scheme false" do
+ test "valid non-scheme" do
valid_non_scheme_urls()
|> Enum.each(fn url ->
- assert is_url?(url, false)
+ assert is_url?(url)
end)
end
- test "invalid scheme false" do
+ test "invalid non-scheme" do
invalid_non_scheme_urls()
|> Enum.each(fn url ->
- refute is_url?(url, false)
+ refute is_url?(url)
end)
end
end