Example linuxfr.
parent
cc5d6ff78f
commit
01cc4633fe
|
@ -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
|
Loading…
Reference in New Issue