GreenAsh.Registry (GreenAsh v0.1.0)

Copy Markdown View Source

Découverte, au runtime, des resources / actions Ash à partir de la liste de domaines fournie par l'hôte (via la macro de routeur), et résolution module <-> slug / clé primaire pour les routes de la console.

Aucune resource n'est référencée en dur : tout vient des domaines passés en argument et de l'introspection Ash.

Summary

Functions

Struct d'action par nom (string ou atom).

Libellé d'une action : sa description si définie, sinon son nom humanisé.

Actions d'une resource.

Décode un token de clé primaire en identifiant utilisable par Ash.get/2.

Encode la clé primaire d'un enregistrement en un token pour URL/formulaire.

Resource correspondant à un slug parmi domains, ou nil.

Libellé court d'une resource (dernier segment du module).

Slug URL d'une resource (ex: MyApp.Bank.Account -> "account").

Description humaine d'une resource, si définie, sinon son libellé.

Toutes les resources exposées par domains.

Functions

action(resource, name)

Struct d'action par nom (string ou atom).

action_label(action)

Libellé d'une action : sa description si définie, sinon son nom humanisé.

actions(resource)

Actions d'une resource.

decode_pk(resource, token)

Décode un token de clé primaire en identifiant utilisable par Ash.get/2.

encode_pk(record)

Encode la clé primaire d'un enregistrement en un token pour URL/formulaire.

PK simple -> la valeur brute (rétrocompatible). PK composite -> un token base64url d'un JSON {champ => valeur}.

resource_by_slug(domains, slug)

Resource correspondant à un slug parmi domains, ou nil.

resource_label(resource)

Libellé court d'une resource (dernier segment du module).

resource_slug(resource)

Slug URL d'une resource (ex: MyApp.Bank.Account -> "account").

resource_title(resource)

Description humaine d'une resource, si définie, sinon son libellé.

resources(domains)

Toutes les resources exposées par domains.