View Source DSL: Smokestack.Dsl

The DSL definition for the Smokestack DSL.

DSL Documentation

Index

  • smokestack
    • factory
      • after_build
      • attribute
      • before_build

Docs

smokestack

  • factory
    • after_build
    • attribute
    • before_build

  • :domain (module that adopts Ash.Domain) - The default Ash Domain to use when evaluating loads

factory

Define factories for a resource

* after_build
* attribute
* before_build
  • :domain (module that adopts Ash.Domain) - The Ash Domain to use when evaluating loads

  • :resource (module that adopts Ash.Resource) - Required. An Ash Resource

  • :variant (atom/0) - The name of a factory variant The default value is :default.

  • :auto_build (one or a list of atom/0) - A list of relationships that should always be built when building this factory The default value is [].

  • :auto_load - An Ash "load statement" to always apply when building this factory The default value is [].

after_build

Modify the record after building.

Allows you to provide a function which can modify the built record before returning.

These hooks are only applied when building records and not parameters.

  • :hook (mfa or function of arity 1) - Required. A function which returns an updated record
attribute
  • :name (atom/0) - Required. The name of the target attribute

  • :generator - Required. A function which can generate an appropriate value for the attribute.œ

before_build

Modify the attributes before building.

Allows you to provide a function which can modify the the attributes before building.

  • :hook (mfa or function of arity 1) - Required. A function which returns an updated record

smokestack

Nested DSLs

  • factory
    • after_build
    • attribute
    • before_build

Options

NameTypeDefaultDocs
domainmoduleThe default Ash Domain to use when evaluating loads

smokestack.factory

factory resource, variant \\ :default

Define factories for a resource

Nested DSLs

Arguments

NameTypeDefaultDocs
resourcemoduleAn Ash Resource
variantatom:defaultThe name of a factory variant

Options

NameTypeDefaultDocs
domainmoduleThe Ash Domain to use when evaluating loads
auto_buildatom | list(atom)[]A list of relationships that should always be built when building this factory
auto_loadatom | keyword | list(atom | keyword)[]An Ash "load statement" to always apply when building this factory

smokestack.factory.after_build

after_build hook

Modify the record after building.

Allows you to provide a function which can modify the built record before returning.

These hooks are only applied when building records and not parameters.

Arguments

NameTypeDefaultDocs
hook(any -> any) | mfaA function which returns an updated record

Introspection

Target: Smokestack.Dsl.AfterBuild

smokestack.factory.attribute

attribute name, generator

Arguments

NameTypeDefaultDocs
nameatomThe name of the target attribute
generator(-> any) | mfa | (any -> any) | mfa | (any, any -> any) | mfa | Smokestack.Template.Choose | Smokestack.Template.Constant | Smokestack.Template.Cycle | Smokestack.Template.NTimes | Smokestack.Template.SequenceA function which can generate an appropriate value for the attribute.œ

Introspection

Target: Smokestack.Dsl.Attribute

smokestack.factory.before_build

before_build hook

Modify the attributes before building.

Allows you to provide a function which can modify the the attributes before building.

Arguments

NameTypeDefaultDocs
hook(any -> any) | mfaA function which returns an updated record

Introspection

Target: Smokestack.Dsl.BeforeBuild

Introspection

Target: Smokestack.Dsl.Factory