Ash.Dsl behaviour (ash v1.37.2) 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 anextensions
key 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