Drops.Relation.Config (drops_relation v0.1.0)

View Source

Configuration management for Drops.Relation.

This module handles configuration for relation modules, including:

  • Default plugin configuration
  • Schema module naming conventions
  • Repository settings
  • Function-based configuration values

Configuration Options

Configuration can be set at the application level:

config :my_app, :drops,
  relation: [
    default_plugins: [
      Drops.Relation.Plugins.Schema,
      Drops.Relation.Plugins.Reading,
      Drops.Relation.Plugins.Writing
    ],
    ecto_schema_module: &MyApp.CustomSchemaModule.for_relation/1
  ]

Function-based Configuration

Configuration values can be functions that receive the relation module as a parameter, allowing for dynamic configuration based on the relation being defined.

Summary

Functions

default_ecto_schema_module(relation)

default_ecto_schema_namespace(relation)

default_plugins(relation)

default_view_module(arg)

get(key, default \\ nil)

@spec get(atom(), term()) :: term()

persist!(config)

validate!(config)

@spec validate!(keyword()) :: keyword()

Validates the given configuration.

Parameters

  • config - The configuration to validate as a keyword list

Returns

Returns the validated configuration as a keyword list.

Raises

Raises ArgumentError if the configuration is invalid.