Credo: Enum.join without the empty separator, String.split for split_once

9f703bd · Gabe Morell · 2026-11-04 21:30

10 files +6 -13

Files changed

modified lib/oh_my_ex_oh_ircd/irc/connection.ex
+1 −1
@@ -2393,7 +2393,7 @@ defmodule OhMyExOhIrcd.IRC.Connection do
2393 2393 |> Enum.filter(fn l ->
2394 2394 MapSet.member?(flags, Channel.flag_from_letter(:binary.first(l)))
2395 2395 end)
2396 − |> Enum.join("")
2396 + |> Enum.join()
2397 2397
2398 2398 mode_string =
2399 2399 "+nt" <>
modified lib/oh_my_ex_oh_ircd/irc/message.ex
+3 −10
@@ -25,14 +25,14 @@ defmodule OhMyExOhIrcd.IRC.Message do
25 25 end
26 26
27 27 defp do_parse(":" <> rest) do
28 − [prefix, rest2] = split_once(rest, " ")
28 + [prefix, rest2] = String.split(rest, " ", parts: 2)
29 29 %__MODULE__{} = parsed = do_parse(rest2)
30 30 %{parsed | prefix: prefix}
31 31 end
32 32
33 33 defp do_parse(rest) do
34 34 {command, params} =
35 − case split_once(rest, " ") do
35 + case String.split(rest, " ", parts: 2) do
36 36 [cmd] -> {cmd, []}
37 37 [cmd, params_str] -> {cmd, parse_params(params_str)}
38 38 end
@@ -45,19 +45,12 @@ defmodule OhMyExOhIrcd.IRC.Message do
45 45 defp parse_params(":" <> trailing), do: [trailing]
46 46
47 47 defp parse_params(str) do
48 − case split_once(str, " ") do
48 + case String.split(str, " ", parts: 2) do
49 49 [param] -> [param]
50 50 [param, rest] -> [param | parse_params(rest)]
51 51 end
52 52 end
53 53
54 − defp split_once(str, sep) do
55 − case String.split(str, sep, parts: 2) do
56 − [a, b] -> [a, b]
57 − [a] -> [a]
58 − end
59 − end
60 −
61 54 @doc "Render a Message struct to a wire line, *without* CRLF."
62 55 @spec encode(t()) :: iodata()
63 56 def encode(%__MODULE__{prefix: prefix, command: cmd, params: params}) do
modified lib/oh_my_ex_oh_ircd_web/live/admin_live.ex
+1 −1
@@ -383,7 +383,7 @@ defmodule OhMyExOhIrcdWeb.AdminLive do
383 383 |> Enum.filter(fn l ->
384 384 MapSet.member?(flags, Channel.flag_from_letter(:binary.first(l)))
385 385 end)
386 − |> Enum.join("")
386 + |> Enum.join()
387 387
388 388 "+nt" <> flag_letters <> if(key, do: "k", else: "") <> if(limit, do: "l", else: "")
389 389 end
modified lib/oh_my_ex_oh_ircd_web/live/user_live/channels.ex
+1 −1
@@ -66,7 +66,7 @@ defmodule OhMyExOhIrcdWeb.UserLive.Channels do
66 66 |> Enum.filter(fn l ->
67 67 MapSet.member?(flags, Channel.flag_from_letter(:binary.first(l)))
68 68 end)
69 − |> Enum.join("")
69 + |> Enum.join()
70 70
71 71 "+nt" <> flag_letters <> if(key, do: "k", else: "") <> if(limit, do: "l", else: "")
72 72 end

Parents: c6011ed