Ash.Dsl behaviour (ash v1.47.0) View Source
The primary entry point for adding a DSL to a module.
To add a DSL to a module, add use Ash.Dsl, ...options. The options supported with use Ash.Dsl are:
:single_extension_kinds- The extension kinds that are allowed to have a single value. For example:[:data_layer]The default value is[].:many_extension_kinds- The extension kinds that can have multiple values. e.g[notifiers: [Notifier1, Notifier2]]The default value is[].:untyped_extensions?- Whether or not to support anextensionskey which contains untyped extensions The default value istrue.:default_extensions- The extensions that are included by default. e.g[data_layer: Default, notifiers: [Notifier1]]Default values for single extension kinds are overwritten if specified by the implementor, while many extension kinds are appended to if specified by the implementor. The default value is[].
See the callbacks defined in this module to augment the behavior/compilation of the module getting a Dsl.
Link to this section Summary
Callbacks
Handle options in the context of the module, after all extensions have been processed. Must return a quote block.
Handle options in the context of the module. Must return a quote block.
Validate/add options. Those options will be passed to handle_opts and handle_before_compile
Link to this section Types
Link to this section Functions
Link to this section Callbacks
Specs
Handle options in the context of the module, after all extensions have been processed. Must return a quote block.
Specs
Handle options in the context of the module. Must return a quote block.
If you want to persist anything in the DSL persistence layer,
use @persist {:key, value}. It can be called multiple times to
persist multiple times.
Specs
Validate/add options. Those options will be passed to handle_opts and handle_before_compile