Imports de règles
Afin de pouvoir réutiliser des règles d’un modèle à un autre, il est nécessaire de pouvoir importer des règles d’un autre modèle.
Pour ce faire nous avons défini une macro importer!
qui permet de spécifier
une liste de règles à importer depuis un fichier JSON d’un modèle
compilé. Par défaut, le fichier JSON est recherché dans le
package NPM du modèle ou bien il est possible de spécifier un chemin vers un
fichier local.
Importer des règles depuis un modèle compilé
Pour pouvoir utiliser un ensemble de règles d’un autre modèle, il faut spécifier
la macro importer!
au début d’un fichier publicodes.
Usage
La macro importer!
possède la syntaxe suivante :
importer!:
depuis:
nom: <npm_package_name>
source: <path_to_the_model_file> (optional)
url: <url_to_the_package_documentation> (optional)
dans: <namespace> (optional)
les règles:
- <rule_name_from_the_npm_package>
- <rule_name_from_the_npm_package>:
<attr_to_overwrite>: <value>
...
...
Avec :
depuis
: les informations sur le modèle à importernom
: le nom du package NPM du modèle à importersource
: le chemin vers le fichier JSON du modèle à importer (optionnel)url
: l’URL vers la documentation du modèle à importer (optionnel)
dans
: le namespace dans lequel importer les règles (optionnel)les règles
: la liste des règles à importer. Il est possible de spécifier des attributs à écraser pour chaque règle (optionnel)
Par défaut, si aucune source
n’est spécifiée, le modèle est supposé être compilé dans le fichier <package_name>.model.json
à la racine
du package NPM. Le package NPM du modèle à utiliser doit donc être publié sur
NPM et être ajouté aux dépendances du projet courant.
Il est également possible de spécifier le chemin vers un fichier local avec source
.
Si dans
n’est pas spécifié, les règles seront importées dans le namespace
correspondant au nom du package NPM (nom
).
Exemple
importer!:
depuis:
nom: futureco-data
url: https://github.com/laem/futureco-data
dans: logement
les règles:
- piscine . empreinte eau froide
- piscine . traitement chimique
- piscine . construction
- piscine . surface:
applicable si: piscine . présent
question: Quelle est la taille de votre piscine ?
description: |
💡 Pensez à prendre en compte **les consommations d'énergie de la piscine dans celles de votre logement**. Votre facture devrait d'ailleurs être fortement impactée si votre piscine est chauffée !
unité: m2
suggestions:
3 x 5 mètres: 15
5 x 5 mètres: 20
5 x 8 mètres: 40
Liste des modèles publiés
futureco-data
- modèle de futur.eco.
@incubateur-ademe/nosgestesclimat
- modèle de Nos Gestes Climat.
@incubateur-ademe/publicodes-impact-livraison
- modèle du simulateur Impact Livraison de Impact CO2.
@incubateur-ademe/publicodes-negaoctet
- modèle publicodes de la base de données de NegaOctet utilisé par Impact CO2.
@incubateur-ademe/publicodes-commun
- ensemble de règles communes utilisées pour l’implémentation des modèles publicodes de l’incubateur de l’ADEME.