Credo: a case, not a one-clause with, in parse_rfc822

c642ff9 · Gabe Morell · 2026-11-04 20:34

4 files +15 -13

Files changed

modified lib/feed_pug/feeds/fetcher.ex
+15 −13
@@ -140,19 +140,21 @@ defmodule FeedPug.Feeds.Fetcher do
140 140 defp parse_rfc822(str) do
141 141 case Regex.run(~r/(\d{1,2})\s+(\w{3})\s+(\d{2,4})\s+(\d{2}):(\d{2})(?::(\d{2}))?/, str) do
142 142 [_, d, mon, y, h, min | rest] ->
143 − with {:ok, month} <- month_number(mon) do
144 − year = String.to_integer(y) |> normalize_year()
145 − sec = rest |> List.first() |> to_int(0)
146 −
147 − case DateTime.new(
148 − Date.new!(year, month, String.to_integer(d)),
149 − Time.new!(String.to_integer(h), String.to_integer(min), sec)
150 − ) do
151 − {:ok, dt} -> dt
152 − _ -> nil
153 − end
154 − else
155 − _ -> nil
143 + case month_number(mon) do
144 + {:ok, month} ->
145 + year = String.to_integer(y) |> normalize_year()
146 + sec = rest |> List.first() |> to_int(0)
147 +
148 + case DateTime.new(
149 + Date.new!(year, month, String.to_integer(d)),
150 + Time.new!(String.to_integer(h), String.to_integer(min), sec)
151 + ) do
152 + {:ok, dt} -> dt
153 + _ -> nil
154 + end
155 +
156 + :error ->
157 + nil
156 158 end
157 159
158 160 _ ->

Parents: 25689a8