Extractly v0.1.4 Extractly View Source
Provide easy access to information inside the templates rendered by mix xtra
Link to this section Summary
Functions
Emits a comment including a message not to edit the created file, as it will be recreated from this template.
Returns docstring of a function (or nil) Ex
Returns docstring of a macro (or nil)
Returns docstring of a module (or nil) Ex
Link to this section Functions
Emits a comment including a message not to edit the created file, as it will be recreated from this template.
It is a convenience to include this into your templates as follows
<%= xtra.do_not_edit_warning %>
or I18n'ed
<%= xtra.do_not_edit_warning, lang: :fr %>
If you are not generating html or markdown the comment can be parametrized
<%= xtra.do_not_edit_warning, comment_start: "-- ", comment_end: "" %>
If you want to include the name of the source template use template: template
option, so
a call may be as complex as:
<%= xtra.do_not_edit_warning, comment_start: "-- ", comment_end: "", template: template, lang: :it %>
Returns docstring of a function (or nil) Ex:
iex(1)> Extractly.functiondoc("Extractly.moduledoc/1")
[ " Returns docstring of a module (or nil)",
" Ex:",
"",
" Extractly.moduledoc(\"Extractly\")",
""
] |> Enum.join("\n")
We can also pass a list of functions to get their docs concatenated
iex(2)> out = Extractly.functiondoc(["Extractly.moduledoc/1", "Extactly.functiondoc/2"])
...(2)> # as we are inside the docstring we required we would need a quine to check for the
...(2)> # output, let us simplify
...(2)> String.split(out, "\n") |> Enum.take(5)
[ " Returns docstring of a module (or nil)",
" Ex:",
"",
" Extractly.moduledoc(\"Extractly\")",
""]
If all the functions are in the same module the following form can be used
iex(3)> out = Extractly.functiondoc(["moduledoc/1", "functiondoc/2"], module: "Extractly")
...(3)> String.split(out, "\n") |> hd()
" Returns docstring of a module (or nil)"
However it is convenient to add a markdown headline before each functiondoc, especially in these cases,
it can be done by indicating the headline: level
option
iex(4)> out = Extractly.functiondoc(["moduledoc/1", "functiondoc/2"], module: "Extractly", headline: 2)
...(4)> String.split(out, "\n") |> Enum.take(3)
[ "## Extractly.moduledoc/1",
"",
" Returns docstring of a module (or nil)"]
Returns docstring of a macro (or nil)
Same naming convention for macros as for functions.
Returns docstring of a module (or nil) Ex:
Extractly.moduledoc("Extractly")