Credo: readability -- number separators, one-condition conds, map_join, predicate names

6e7ed93 · Gabe Morell · 2026-11-04 20:43

72 files +141 -151
Message
{commit_body(@commit)}

Files changed

modified apps/room_ephem/lib/room_ephem/ephem_worker.ex
+5 −9
@@ -9,12 +9,8 @@ defmodule RoomEphem.Worker do
9 9
10 10 @ttl :timer.hours(8)
11 11
12 − defp normalize_ll(val) do
13 − cond do
14 − val < -180 -> val + 360
15 − true -> val
16 − end
17 − end
12 + defp normalize_ll(val) when val < -180, do: val + 360
13 + defp normalize_ll(val), do: val
18 14
19 15 # ── Moon rise/set calculation ────────────────────────────────────────────────
20 16 # Low-precision algorithm (~5–15 min accuracy) based on Jean Meeus,
@@ -24,7 +20,7 @@ defmodule RoomEphem.Worker do
24 20 a = div(14 - m, 12)
25 21 yy = y + 4800 - a
26 22 mm = m + 12 * a - 3
27 − d + div(153 * mm + 2, 5) + 365 * yy + div(yy, 4) - div(yy, 100) + div(yy, 400) - 32045 - 0.5
23 + d + div(153 * mm + 2, 5) + 365 * yy + div(yy, 4) - div(yy, 100) + div(yy, 400) - 32_045 - 0.5
28 24 end
29 25
30 26 defp sin_d(deg), do: :math.sin(deg * :math.pi() / 180.0)
@@ -58,8 +54,8 @@ defmodule RoomEphem.Worker do
58 54
59 55 defp gmst_midnight(jd) do
60 56 d = jd - 2_451_545.0
61 − t = d / 36525.0
62 − norm_deg(100.4606184 + 36000.77004 * t + 0.000387933 * t * t)
57 + t = d / 36_525.0
58 + norm_deg(100.4606184 + 36_000.77004 * t + 0.000387933 * t * t)
63 59 end
64 60
65 61 # Returns {:ok, rise_ut_hours, set_ut_hours} or {:error, reason}
modified apps/room_gbfs/lib/room_gbfs/gbfs_worker.ex
+1 −1
@@ -12,7 +12,7 @@ defmodule RoomGbfs.Worker do
12 12 @dynamic_refresh_seconds 300
13 13
14 14 # 1d
15 − @static_refresh_seconds 86400
15 + @static_refresh_seconds 86_400
16 16
17 17 # Ten hours, and it always was: this went to `:timer.minutes/1` while being
18 18 # called seconds. Left where it is now that the counts refresh on the five
modified apps/room_gitlab/lib/room_gitlab/gitlab_worker.ex
+1 −1
@@ -224,7 +224,7 @@ defmodule RoomGitlab.Worker do
224 224 # |> IO.inspect()
225 225 end
226 226
227 − defp is_last_hour?(entry_field, hours \\ 1) do
227 + defp last_hour?(entry_field, hours \\ 1) do
228 228 case entry_field |> DateTime.from_iso8601() do
229 229 {:ok, dt, _something} ->
230 230 DateTime.compare(dt, DateTime.utc_now() |> DateTime.add(-3600 * hours)) === :gt
modified apps/room_gtfs/lib/gtfs_realtime_pb.ex
+28 −28
@@ -211,7 +211,7 @@ defmodule TransitRealtime.FeedMessage do
211 211 field(:header, 1, required: true, type: TransitRealtime.FeedHeader)
212 212 field(:entity, 2, repeated: true, type: TransitRealtime.FeedEntity)
213 213
214 − extensions([{1000, 2000}, {9000, 10000}])
214 + extensions([{1000, 2000}, {9000, 10_000}])
215 215 end
216 216
217 217 defmodule TransitRealtime.FeedHeader do
@@ -238,7 +238,7 @@ defmodule TransitRealtime.FeedHeader do
238 238 field(:timestamp, 3, optional: true, type: :uint64)
239 239 field(:feed_version, 4, optional: true, type: :string, json_name: "feedVersion")
240 240
241 − extensions([{1000, 2000}, {9000, 10000}])
241 + extensions([{1000, 2000}, {9000, 10_000}])
242 242 end
243 243
244 244 defmodule TransitRealtime.FeedEntity do
@@ -269,7 +269,7 @@ defmodule TransitRealtime.FeedEntity do
269 269 json_name: "tripModifications"
270 270 )
271 271
272 − extensions([{1000, 2000}, {9000, 10000}])
272 + extensions([{1000, 2000}, {9000, 10_000}])
273 273 end
274 274
275 275 defmodule TransitRealtime.TripUpdate.StopTimeEvent do
@@ -285,7 +285,7 @@ defmodule TransitRealtime.TripUpdate.StopTimeEvent do
285 285 field(:uncertainty, 3, optional: true, type: :int32)
286 286 field(:scheduled_time, 4, optional: true, type: :int64, json_name: "scheduledTime")
287 287
288 − extensions([{1000, 2000}, {9000, 10000}])
288 + extensions([{1000, 2000}, {9000, 10_000}])
289 289 end
290 290
291 291 defmodule TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties do
@@ -313,7 +313,7 @@ defmodule TransitRealtime.TripUpdate.StopTimeUpdate.StopTimeProperties do
313 313 enum: true
314 314 )
315 315
316 − extensions([{1000, 2000}, {9000, 10000}])
316 + extensions([{1000, 2000}, {9000, 10_000}])
317 317 end
318 318
319 319 defmodule TransitRealtime.TripUpdate.StopTimeUpdate do
@@ -350,7 +350,7 @@ defmodule TransitRealtime.TripUpdate.StopTimeUpdate do
350 350 json_name: "stopTimeProperties"
351 351 )
352 352
353 − extensions([{1000, 2000}, {9000, 10000}])
353 + extensions([{1000, 2000}, {9000, 10_000}])
354 354 end
355 355
356 356 defmodule TransitRealtime.TripUpdate.TripProperties do
@@ -368,7 +368,7 @@ defmodule TransitRealtime.TripUpdate.TripProperties do
368 368 field(:trip_headsign, 5, optional: true, type: :string, json_name: "tripHeadsign")
369 369 field(:trip_short_name, 6, optional: true, type: :string, json_name: "tripShortName")
370 370
371 − extensions([{1000, 2000}, {9000, 10000}])
371 + extensions([{1000, 2000}, {9000, 10_000}])
372 372 end
373 373
374 374 defmodule TransitRealtime.TripUpdate do
@@ -397,7 +397,7 @@ defmodule TransitRealtime.TripUpdate do
397 397 json_name: "tripProperties"
398 398 )
399 399
400 − extensions([{1000, 2000}, {9000, 10000}])
400 + extensions([{1000, 2000}, {9000, 10_000}])
401 401 end
402 402
403 403 defmodule TransitRealtime.VehiclePosition.CarriageDetails do
@@ -428,7 +428,7 @@ defmodule TransitRealtime.VehiclePosition.CarriageDetails do
428 428
429 429 field(:carriage_sequence, 5, optional: true, type: :uint32, json_name: "carriageSequence")
430 430
431 − extensions([{1000, 2000}, {9000, 10000}])
431 + extensions([{1000, 2000}, {9000, 10_000}])
432 432 end
433 433
434 434 defmodule TransitRealtime.VehiclePosition do
@@ -487,7 +487,7 @@ defmodule TransitRealtime.VehiclePosition do
487 487 json_name: "multiCarriageDetails"
488 488 )
489 489
490 − extensions([{1000, 2000}, {9000, 10000}])
490 + extensions([{1000, 2000}, {9000, 10_000}])
491 491 end
492 492
493 493 defmodule TransitRealtime.Alert do
@@ -591,7 +591,7 @@ defmodule TransitRealtime.Alert do
591 591 json_name: "effectDetail"
592 592 )
593 593
594 − extensions([{1000, 2000}, {9000, 10000}])
594 + extensions([{1000, 2000}, {9000, 10_000}])
595 595 end
596 596
597 597 defmodule TransitRealtime.TimeRange do
@@ -605,7 +605,7 @@ defmodule TransitRealtime.TimeRange do
605 605 field(:start, 1, optional: true, type: :uint64)
606 606 field(:end, 2, optional: true, type: :uint64)
607 607
608 − extensions([{1000, 2000}, {9000, 10000}])
608 + extensions([{1000, 2000}, {9000, 10_000}])
609 609 end
610 610
611 611 defmodule TransitRealtime.Position do
@@ -622,7 +622,7 @@ defmodule TransitRealtime.Position do
622 622 field(:odometer, 4, optional: true, type: :double)
623 623 field(:speed, 5, optional: true, type: :float)
624 624
625 − extensions([{1000, 2000}, {9000, 10000}])
625 + extensions([{1000, 2000}, {9000, 10_000}])
626 626 end
627 627
628 628 defmodule TransitRealtime.TripDescriptor.ModifiedTripSelector do
@@ -638,7 +638,7 @@ defmodule TransitRealtime.TripDescriptor.ModifiedTripSelector do
638 638 field(:start_time, 3, optional: true, type: :string, json_name: "startTime")
639 639 field(:start_date, 4, optional: true, type: :string, json_name: "startDate")
640 640
641 − extensions([{1000, 2000}, {9000, 10000}])
641 + extensions([{1000, 2000}, {9000, 10_000}])
642 642 end
643 643
644 644 defmodule TransitRealtime.TripDescriptor do
@@ -668,7 +668,7 @@ defmodule TransitRealtime.TripDescriptor do
668 668 json_name: "modifiedTrip"
669 669 )
670 670
671 − extensions([{1000, 2000}, {9000, 10000}])
671 + extensions([{1000, 2000}, {9000, 10_000}])
672 672 end
673 673
674 674 defmodule TransitRealtime.VehicleDescriptor do
@@ -691,7 +691,7 @@ defmodule TransitRealtime.VehicleDescriptor do
691 691 enum: true
692 692 )
693 693
694 − extensions([{1000, 2000}, {9000, 10000}])
694 + extensions([{1000, 2000}, {9000, 10_000}])
695 695 end
696 696
697 697 defmodule TransitRealtime.EntitySelector do
@@ -709,7 +709,7 @@ defmodule TransitRealtime.EntitySelector do
709 709 field(:stop_id, 5, optional: true, type: :string, json_name: "stopId")
710 710 field(:direction_id, 6, optional: true, type: :uint32, json_name: "directionId")
711 711
712 − extensions([{1000, 2000}, {9000, 10000}])
712 + extensions([{1000, 2000}, {9000, 10_000}])
713 713 end
714 714
715 715 defmodule TransitRealtime.TranslatedString.Translation do
@@ -723,7 +723,7 @@ defmodule TransitRealtime.TranslatedString.Translation do
723 723 field(:text, 1, required: true, type: :string)
724 724 field(:language, 2, optional: true, type: :string)
725 725
726 − extensions([{1000, 2000}, {9000, 10000}])
726 + extensions([{1000, 2000}, {9000, 10_000}])
727 727 end
728 728
729 729 defmodule TransitRealtime.TranslatedString do
@@ -736,7 +736,7 @@ defmodule TransitRealtime.TranslatedString do
736 736
737 737 field(:translation, 1, repeated: true, type: TransitRealtime.TranslatedString.Translation)
738 738
739 − extensions([{1000, 2000}, {9000, 10000}])
739 + extensions([{1000, 2000}, {9000, 10_000}])
740 740 end
741 741
742 742 defmodule TransitRealtime.TranslatedImage.LocalizedImage do
@@ -751,7 +751,7 @@ defmodule TransitRealtime.TranslatedImage.LocalizedImage do
751 751 field(:media_type, 2, required: true, type: :string, json_name: "mediaType")
752 752 field(:language, 3, optional: true, type: :string)
753 753
754 − extensions([{1000, 2000}, {9000, 10000}])
754 + extensions([{1000, 2000}, {9000, 10_000}])
755 755 end
756 756
757 757 defmodule TransitRealtime.TranslatedImage do
@@ -768,7 +768,7 @@ defmodule TransitRealtime.TranslatedImage do
768 768 json_name: "localizedImage"
769 769 )
770 770
771 − extensions([{1000, 2000}, {9000, 10000}])
771 + extensions([{1000, 2000}, {9000, 10_000}])
772 772 end
773 773
774 774 defmodule TransitRealtime.Shape do
@@ -782,7 +782,7 @@ defmodule TransitRealtime.Shape do
782 782 field(:shape_id, 1, optional: true, type: :string, json_name: "shapeId")
783 783 field(:encoded_polyline, 2, optional: true, type: :string, json_name: "encodedPolyline")
784 784
785 − extensions([{1000, 2000}, {9000, 10000}])
785 + extensions([{1000, 2000}, {9000, 10_000}])
786 786 end
787 787
788 788 defmodule TransitRealtime.Stop do
@@ -848,7 +848,7 @@ defmodule TransitRealtime.Stop do
848 848 json_name: "platformCode"
849 849 )
850 850
851 − extensions([{1000, 2000}, {9000, 10000}])
851 + extensions([{1000, 2000}, {9000, 10_000}])
852 852 end
853 853
854 854 defmodule TransitRealtime.TripModifications.Modification do
@@ -887,7 +887,7 @@ defmodule TransitRealtime.TripModifications.Modification do
887 887 field(:service_alert_id, 5, optional: true, type: :string, json_name: "serviceAlertId")
888 888 field(:last_modified_time, 6, optional: true, type: :uint64, json_name: "lastModifiedTime")
889 889
890 − extensions([{1000, 2000}, {9000, 10000}])
890 + extensions([{1000, 2000}, {9000, 10_000}])
891 891 end
892 892
893 893 defmodule TransitRealtime.TripModifications.SelectedTrips do
@@ -901,7 +901,7 @@ defmodule TransitRealtime.TripModifications.SelectedTrips do
901 901 field(:trip_ids, 1, repeated: true, type: :string, json_name: "tripIds")
902 902 field(:shape_id, 2, optional: true, type: :string, json_name: "shapeId")
903 903
904 − extensions([{1000, 2000}, {9000, 10000}])
904 + extensions([{1000, 2000}, {9000, 10_000}])
905 905 end
906 906
907 907 defmodule TransitRealtime.TripModifications do
@@ -922,7 +922,7 @@ defmodule TransitRealtime.TripModifications do
922 922 field(:service_dates, 3, repeated: true, type: :string, json_name: "serviceDates")
923 923 field(:modifications, 4, repeated: true, type: TransitRealtime.TripModifications.Modification)
924 924
925 − extensions([{1000, 2000}, {9000, 10000}])
925 + extensions([{1000, 2000}, {9000, 10_000}])
926 926 end
927 927
928 928 defmodule TransitRealtime.StopSelector do
@@ -936,7 +936,7 @@ defmodule TransitRealtime.StopSelector do
936 936 field(:stop_sequence, 1, optional: true, type: :uint32, json_name: "stopSequence")
937 937 field(:stop_id, 2, optional: true, type: :string, json_name: "stopId")
938 938
939 − extensions([{1000, 2000}, {9000, 10000}])
939 + extensions([{1000, 2000}, {9000, 10_000}])
940 940 end
941 941
942 942 defmodule TransitRealtime.ReplacementStop do
@@ -950,5 +950,5 @@ defmodule TransitRealtime.ReplacementStop do
950 950 field(:travel_time_to_stop, 1, optional: true, type: :int32, json_name: "travelTimeToStop")
951 951 field(:stop_id, 2, optional: true, type: :string, json_name: "stopId")
952 952
953 − extensions([{1000, 2000}, {9000, 10000}])
953 + extensions([{1000, 2000}, {9000, 10_000}])
954 954 end
modified apps/room_gtfs/lib/room_gtfs/gtfs_worker.ex
+5 −10
@@ -1018,8 +1018,7 @@ defmodule RoomGtfs.Worker.RT do
1018 1018
1019 1019 feed ->
1020 1020 feed.entity
1021 − |> Enum.filter(& &1.alert)
1022 − |> Enum.filter(fn entity -> alert_active?(entity.alert, now) end)
1021 + |> Enum.filter(fn entity -> entity.alert && alert_active?(entity.alert, now) end)
1023 1022 |> Enum.map(&present_alert/1)
1024 1023 end
1025 1024
@@ -1871,8 +1870,7 @@ defmodule RoomGtfs.Worker.Static do
1871 1870 schema.__schema__(:fields)
1872 1871 |> List.delete(:id)
1873 1872 |> Enum.map(fn f -> {f, schema.__schema__(:type, f) |> as_pg} end)
1874 − |> Enum.map(fn {k, v} -> cast_col(k, v) end)
1875 − |> Enum.join(", ")
1873 + |> Enum.map_join(", ", fn {k, v} -> cast_col(k, v) end)
1876 1874 end
1877 1875
1878 1876 def get_cols_pgtypes(schema, cols) do
@@ -1880,21 +1878,18 @@ defmodule RoomGtfs.Worker.Static do
1880 1878 |> List.delete(:id)
1881 1879 |> Enum.filter(fn f -> Enum.member?(cols |> Enum.map(&String.to_atom/1), f) end)
1882 1880 |> Enum.map(fn f -> {f, schema.__schema__(:type, f) |> as_pg} end)
1883 − |> Enum.map(fn {k, v} -> cast_col(k, v) end)
1884 − |> Enum.join(", ")
1881 + |> Enum.map_join(", ", fn {k, v} -> cast_col(k, v) end)
1885 1882 end
1886 1883
1887 1884 def csv_cols_to_tmp_cols(cols) do
1888 1885 cols
1889 − |> Enum.map(fn x -> "#{x} varchar" end)
1890 − |> Enum.join(", ")
1886 + |> Enum.map_join(", ", fn x -> "#{x} varchar" end)
1891 1887 end
1892 1888
1893 1889 def csv_cols_to_tmp_cols(cols, :add) do
1894 1890 cols
1895 1891 |> Kernel.++(["inserted_at", "updated_at", "source_id"])
1896 − |> Enum.map(fn x -> "#{x} varchar" end)
1897 − |> Enum.join(", ")
1892 + |> Enum.map_join(", ", fn x -> "#{x} varchar" end)
1898 1893 end
1899 1894
1900 1895 # CSV headers are matched by name against schema fields, so any decoration on
modified apps/room_gtfs/test/feed_tester_findings_test.exs
+1 −1

Click to load diff…

modified apps/room_hermes/lib/room_hermes/mail/server.ex
+12 −0

Click to load diff…

modified apps/room_icarus/lib/room_icarus/flight.ex
+4 −6

Click to load diff…

modified apps/room_icarus/lib/room_icarus/worker.ex
+9 −11

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/condensers/basic_mqtt.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/condensers/plus_mqtt.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/queues/webhooks.ex
+25 −22

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum/storage.ex
+5 −4

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_foci_live/form_component.ex
+2 −6

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_foci_live/form_component_coords.ex
+2 −6

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/public.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_pythiae_live/show.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_scribus_live/public.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/form_component.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/show.ex
+3 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_source_live/show.html.heex
+3 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/cfg_vision_live/show.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/helpers/map_streaming.ex
+5 −3

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/landing_live/index.ex
+1 −1

Click to load diff…

modified apps/room_sanctum/lib/room_sanctum_web/live/live_preview.ex
+3 −4

Click to load diff…

modified apps/room_scribes/lib/room_scribes/scribe_worker.ex
+1 −1

Click to load diff…

modified apps/room_treasury/lib/room_treasury/worker.ex
+16 −18

Click to load diff…

modified apps/room_weather/lib/room_weather/weather_worker.ex
+2 −6

Click to load diff…

Parents: ef5ef67