From 7bf337a83b9fed1e1db82d442e249e000d94d782 Mon Sep 17 00:00:00 2001 From: Philippe PITTOLI Date: Sun, 12 May 2024 03:14:17 +0200 Subject: [PATCH] Example linuxfr. --- exemple-linuxfr.cr | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 exemple-linuxfr.cr diff --git a/exemple-linuxfr.cr b/exemple-linuxfr.cr new file mode 100644 index 0000000..b7de5fe --- /dev/null +++ b/exemple-linuxfr.cr @@ -0,0 +1,47 @@ +require "./src/dodb.cr" + +class Voiture + include JSON::Serializable + + property nom : String + property couleur : String + property tags : Array(String) + + def initialize(@nom, @couleur, @tags) + end +end + + +voitures = DODB::DataBase(Voiture).new "db-voitures" + +voiture_par_nom = voitures.new_index "nom", &.nom +voiture_par_couleur = voitures.new_partition "couleur", &.couleur +voiture_par_tag = voitures.new_tags "étiquettes", &.tags + +voitures << Voiture.new "Corvet", "rouge", ["jolie", "classique"] +voitures << Voiture.new "Bullet-GT", "bleue", ["jolie", "rapide"] + +# La Corvet devient bleue. +voiture = voiture_par_nom.get "Corvet" +voiture.couleur = "bleue" +voiture_par_nom.update voiture + +# La Bullet-GT change de nom. +voiture = voiture_par_nom.get "Bullet-GT" +voiture.nom = "Not-So-Fast-Bullet-GT" +voiture_par_nom.update "Bullet-GT", voiture # Le nom (l'indice) a changé. + +# Comme nous le savons tous, les jolies voitures sont également chères. +voiture_par_tag.get("jolie").each do |voiture| + voiture.tags << "chère" + voiture_par_nom.update voiture +end + +# Suppression des voitures bleues et classiques. +voiture_par_couleur.delete "bleue", do |voiture| + voiture.tags.includes? "classique" +end + +voitures.each do |voiture| + pp! voiture +end