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