NLdoc.Spec.Template (NLdoc.Spec v3.1.10)
View SourceThis module is a template for creating new NLdoc spec resource schemas.
To create a new resource schema:
- Copy this file to a new file in the same directory, renaming it to the name of the new resource in snake_case.
- Replace all occurrences of
Templatein that file with the name of the new resource. - Add the fields for this resource to the
typed_embedded_schema. - Update the
changesetfunction to cast and validate the new fields. - Add the new resource type to the
NLdoc.Spec.Typeenum. - Add the
ttype to theNLdoc.Spec.objecttype. - Remove this section of the moduledoc up to and including
---. - Now you can use the new resource in other schemas, e.g. add it to the possible children of
NLdoc.Spec.Document.
This module defines the Ecto schema for the NLdoc spec Template object.
Summary
Functions
This function creates a new NLdoc.Spec.Template struct from a map of keys and values, where the keys are snake_case.
Returns a tuple with either {:ok, template} or {:error, changeset}.
This function creates a new NLdoc.Spec.Template struct from a map of keys and values, where the keys are snake_case.
Returns the template} object or raises an Ecto.CastError.
This validation function can be used in changeset/2 implementations to ensure that
the value for a specific field is a valid URL.
Types
@type t() :: %NLdoc.Spec.Template{ descriptors: [NLdoc.Spec.descriptor()], type: String.t() }
Functions
@spec changeset( struct(), map() ) :: Ecto.Changeset.t()
@spec new(map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
This function creates a new NLdoc.Spec.Template struct from a map of keys and values, where the keys are snake_case.
Returns a tuple with either {:ok, template} or {:error, changeset}.
Note: If you want to use a map with camelCase keys, use NLdoc.Util.Recase.to_snake/1
to convert them to snake_case before passing them to the constructor.
This function creates a new NLdoc.Spec.Template struct from a map of keys and values, where the keys are snake_case.
Returns the template} object or raises an Ecto.CastError.
Note: If you want to use a map with camelCase keys, use NLdoc.Util.Recase.to_snake/1
to convert them to snake_case before passing them to the constructor.
@spec validate_url(Ecto.Changeset.t(), atom(), [validate_url_opt()]) :: Ecto.Changeset.t()
This validation function can be used in changeset/2 implementations to ensure that
the value for a specific field is a valid URL.
Options
:message- The error message to use when the URL is invalid.:allow_relative- If set totrue, relative URLs are allowed. Default isfalse.