TaskValidator.Config (TaskValidator v0.9.1)
View SourceConfiguration module for TaskValidator.
Provides a centralized way to access and validate configuration options for the TaskValidator library. All configuration is read from the Application environment under the :task_validator key.
Configuration Options
Validation Rules
:valid_statuses
- List of valid task statuses. Default:["Planned", "In Progress", "Review", "Completed", "Blocked"]
:valid_priorities
- List of valid task priorities. Default:["Critical", "High", "Medium", "Low"]
:id_regex
- Regular expression for validating task IDs. Default:~r/^[A-Z]{2,4}\d{3,4}(-\d+|[a-z])?$/
:rating_regex
- Regular expression for validating review ratings. Default:~r/^([1-5](\.)?) *((partial))?$/
Code Quality KPIs
:max_functions_per_module
- Maximum allowed functions per module. Default:8
:max_lines_per_function
- Maximum allowed lines per function. Default:15
:max_call_depth
- Maximum allowed call depth. Default:3
Elixir-Specific Code Quality KPIs
:max_pattern_match_depth
- Maximum allowed pattern matching depth. Default:4
:max_dialyzer_warnings
- Maximum allowed Dialyzer warnings. Default:0
:min_credo_score
- Minimum required Credo score (out of 10). Default:8.0
:max_genserver_state_complexity
- Maximum GenServer state fields. Default:5
:max_phoenix_context_boundaries
- Maximum contexts per feature. Default:3
:max_ecto_query_complexity
- Maximum Ecto query depth. Default:4
Task Categories
:category_ranges
- Map of category names to number ranges. Default (Elixir/Phoenix-specific):%{ "otp_genserver" => {1, 99}, "phoenix_web" => {100, 199}, "business_logic" => {200, 299}, "data_layer" => {300, 399}, "infrastructure" => {400, 499}, "testing" => {500, 599} }
Example Configuration
# config/config.exs
config :task_validator,
valid_statuses: ["Planning", "Active", "Done", "Paused"],
max_functions_per_module: 7,
category_ranges: %{
"otp_genserver" => {1, 99},
"phoenix_web" => {100, 199},
"business_logic" => {200, 299},
"data_layer" => {300, 399},
"infrastructure" => {400, 499},
"testing" => {500, 599}
}
Summary
Functions
Gets a configuration value with validation.
Gets all configuration as a map.
Validates a configuration value.
Functions
Gets a configuration value with validation.
Returns the configured value or the default if not set. Validates the configuration value matches expected type and constraints.
Examples
iex> TaskValidator.Config.get(:valid_statuses)
["Planned", "In Progress", "Review", "Completed", "Blocked"]
iex> TaskValidator.Config.get(:max_functions_per_module)
5
@spec get_all() :: map()
Gets all configuration as a map.
Returns a map with all configuration values, using defaults for any unconfigured options.
Validates a configuration value.
Returns :ok
if valid, or {:error, reason}
if invalid.