From dc0f5964a98ade18aeb7d3ae34fc77f5196fd3d2 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Mon, 11 Apr 2022 16:18:12 -0400 Subject: [PATCH] Generate an error when parsing a feed with no data --- lib/feed_parser.ex | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/feed_parser.ex b/lib/feed_parser.ex index 38d8bb5..57781b4 100644 --- a/lib/feed_parser.ex +++ b/lib/feed_parser.ex @@ -23,7 +23,13 @@ defmodule FeedParser do """ @spec parse(data :: String.t(), content_type :: String.t(), parsers :: [module()]) :: {:ok, feed :: FeedParser.Feed.t()} | {:error, reason :: String.t()} - def parse(data, content_type, parsers \\ @default_parsers) when is_binary(data) do + def parse(data, content_type, parsers \\ @default_parsers) + + def parse(nil, _, _) do + {:error, "no data"} + end + + def parse(data, content_type, parsers) when is_binary(data) do parsers |> Enum.reduce_while(false, fn parser, acc -> case parser.accepts(data, content_type) do