Credo: single-branch conds become ifs, and a map_join

5ea0ebf · Gabe Morell · 2026-11-04 20:32

10 files +26 -33

Files changed

modified lib/diogramos/diagrams/folders.ex
+7 −9
@@ -105,15 +105,13 @@ defmodule Diogramos.Diagrams.Folders do
105 105 defp ensure_parent_writable(scope, attrs) do
106 106 parent_id = attrs[:parent_id] || attrs["parent_id"]
107 107
108 − cond do
109 − is_nil(parent_id) ->
110 − :ok
111 −
112 − true ->
113 − case Repo.get(Folder, parent_id) do
114 − nil -> {:error, :parent_not_found}
115 − parent -> Permissions.authorize(scope, :write, parent)
116 − end
108 + if is_nil(parent_id) do
109 + :ok
110 + else
111 + case Repo.get(Folder, parent_id) do
112 + nil -> {:error, :parent_not_found}
113 + parent -> Permissions.authorize(scope, :write, parent)
114 + end
117 115 end
118 116 end
119 117
modified lib/diogramos/diagrams/mermaid_export.ex
+11 −13
@@ -69,19 +69,17 @@ defmodule Diogramos.Diagrams.MermaidExport do
69 69 from_id = connector["from"]["element"]
70 70 to_id = connector["to"]["element"]
71 71
72 − cond do
73 − is_nil(elements[from_id]) or is_nil(elements[to_id]) ->
74 − ""
75 −
76 − true ->
77 − arrow = arrow_for(connector)
78 − label = connector["label"] || ""
79 −
80 − if label == "" do
81 − "#{ids[from_id]} #{arrow} #{ids[to_id]}"
82 − else
83 − "#{ids[from_id]} #{arrow}|#{escape(label)}| #{ids[to_id]}"
84 − end
72 + if is_nil(elements[from_id]) or is_nil(elements[to_id]) do
73 + ""
74 + else
75 + arrow = arrow_for(connector)
76 + label = connector["label"] || ""
77 +
78 + if label == "" do
79 + "#{ids[from_id]} #{arrow} #{ids[to_id]}"
80 + else
81 + "#{ids[from_id]} #{arrow}|#{escape(label)}| #{ids[to_id]}"
82 + end
85 83 end
86 84 end
87 85
modified lib/diogramos_web/live/canvas_live/embed.ex
+7 −9
@@ -71,15 +71,13 @@ defmodule DiogramosWeb.CanvasLive.Embed do
71 71
72 72 @impl true
73 73 def handle_info({:canvas_op, %{op: op, version: version}}, socket) do
74 − cond do
75 − version <= socket.assigns.version ->
76 − {:noreply, socket}
77 −
78 − true ->
79 − case Document.apply_op(socket.assigns.document, op) do
80 − {:ok, doc} -> {:noreply, assign(socket, document: doc, version: version)}
81 − {:error, _} -> {:noreply, socket}
82 − end
74 + if version <= socket.assigns.version do
75 + {:noreply, socket}
76 + else
77 + case Document.apply_op(socket.assigns.document, op) do
78 + {:ok, doc} -> {:noreply, assign(socket, document: doc, version: version)}
79 + {:error, _} -> {:noreply, socket}
80 + end
83 81 end
84 82 end
85 83
modified lib/diogramos_web/live/canvas_live/index.ex
+1 −2
@@ -839,8 +839,7 @@ defmodule DiogramosWeb.CanvasLive.Index do
839 839 defp changeset_message(changeset) do
840 840 changeset
841 841 |> Ecto.Changeset.traverse_errors(fn {msg, _opts} -> msg end)
842 − |> Enum.map(fn {field, messages} -> "#{field} #{Enum.join(messages, ", ")}" end)
843 − |> Enum.join("; ")
842 + |> Enum.map_join("; ", fn {field, messages} -> "#{field} #{Enum.join(messages, ", ")}" end)
844 843 end
845 844
846 845 defp error_to_string(:too_large), do: "File is too large."

Parents: 5d06442