NLdoc.Spec.Template (NLdoc.Spec v3.1.1)
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
Template
in that file with the name of the new resource. - Add the fields for this resource to the
typed_embedded_schema
. - Update the
changeset
function to cast and validate the new fields. - Add the new resource type to the
NLdoc.Spec.Type
enum. - Add the
t
type to theNLdoc.Spec.object
type. - 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
.