J'ai une macro simple qui injecte une fonction dans le module appelant.Définir la fonction hors bloc de citation dans elixir
defmodule MyModule do
defmacro __using__(_opts) do
quote do
def run do
IO.puts "Hello world"
end
end
end
end
Cela fonctionne comme prévu, mais en raison du fait que la fonction d'exécution est imbriqué dans le bloc de citation, je ne peux pas ajouter de la documentation à l'aide ExDoc. Je veux également définir la fonction d'exécution à l'extérieur car je pense que cela rend le code meilleur. Quelque chose comme ceci:
defmodule MyModule do
def run do
IO.puts "Hello world"
end
defmacro __using__(_opts) do
quote do
# Some code to inject the run function
end
end
end
Comment procéder? De plus, comment ajouter de la documentation en utilisant ExDoc pour une fonction imbriquée?
Voulez-vous ajouter la documentation à 'MyModule.run' ou voulez-vous qu'il apparaisse dans la fonction' run' vous injectez dans le module qui ne 'utiliser MyModule'? – Dogbert
@Dogbert Je souhaite ajouter la documentation à MyModule.run et dans le module qui utilise 'MyModule' –
@Dogbert Si je définis les docs pour la fonction d'exécution imbriquée, je reçois la documentation dans le module de destination mais pas dans le module d'origine. –