First pass at uniformed types, specs and docs

- spec public functions (skipping controllers, views, live views and
components)
- use types instead of explanations in docs
- remove redundant docs
- fix typos
This commit is contained in:
Claudio Ortolina
2026-03-06 08:33:11 +00:00
parent 99e30d5fdf
commit 7cf9b4e7f8
81 changed files with 652 additions and 300 deletions
+4
View File
@@ -20,6 +20,9 @@ defmodule Req.RateLimiter do
Creates the ETS table used to track request timestamps.
Call once at application startup.
"""
@type attach_opts :: [name: atom(), cooldown: non_neg_integer()]
@spec new() :: :ets.table()
def new do
:ets.new(@table, [:set, :public, :named_table])
end
@@ -33,6 +36,7 @@ defmodule Req.RateLimiter do
* `:cooldown` - minimum milliseconds between requests
"""
@spec attach(Req.Request.t(), attach_opts()) :: Req.Request.t()
def attach(request, opts) do
name = Keyword.fetch!(opts, :name)
cooldown = Keyword.fetch!(opts, :cooldown)