rougail/doc/family.md

88 lines
2.5 KiB
Markdown

# Famille
## Une famille
Une famille est un conteneur de variables.
Pour décrire une famille il faut mettre au minimum un nom :
```
<family name="my_family"/>
```
Cette famille doit être placé dans une balise "variables" :
```
<variables>
<family name="my_family"/>
</variables>
```
## Description et aide de la famille
En plus d'un nom, il est possible de mettre une "description" à la famille. C'est une information "utilisateur" qui nous permettra d'avoir des informations complémentaires sur le contenu de cette famille :
```
<family name="my_family" description="This is a great family"/>
```
En plus de la description, il est possible de préciser une aide complémentaire :
```
<family name="my_family" help="This is a great family"/>
```
## Mode de la famille
Le [mode](./mode.md) par défaut d'une famille correspond au [mode](./mode.md) le plus petite des variables dans cette famille.
Changer le [mode](./mode.md) d'une famille permet de définir le [mode](./mode.md) par défaut des variables inclusent dans cette famille.
Pour définir le [mode](./mode.md) :
```
<family name="my_family" mode="expert"/>
```
## Famille invisible
Il est possible de cacher une famille, ainsi toutes les variables inclusent dans cette famille.
Cacher une famille signifie qu'elle ne sera pas visible lorsqu'on modifie la configuration du service.
Par contre ces variables sont accessibles lorsqu'on va utiliser ces variables.
Pour cacher une famille :
```
<family name="my_family" hidden="True"/>
```
## Famille crées dynamiquement
Pour créer une famille crées dynamiquement, il faut créer une family fictive lié à une variable.
Le nom et la description de la famille et des variables qu'elle contient sera en réalité le prefix du nouveau nom/description. Le suffix viendra de la variable liée.
Par exemple :
```
<family name='my_family'>
<variable name='varname' multi="True">
<value>val1</value>
<value>val2</value>
</variable>
</family>
<family name='my_dyn_family_' dynamic="varname description="Describe "">
<variable name='my_dyn_var_'/>
</family>
```
Créera trois familles :
- la famille : "my_family"
- la famille dynamique : "my_dyn_family_val1" avec la description "Describe val1"
- la famille dynamique : "my_dyn_family_val2" avec la description "Describe val2"
Dans la famille dynamique "my_dyn_family_val1" on retrouvera une variable "my_dyn_var_val1".
Bien évidement si le contenu de "varname" venait a évolué, de nouvelles familles dynamiques pouvent apparaitre ou des familles dynamiques peuvent disparaître.