Il m'arrive souvent d'avoir besoin de faire un petit diagramme de séquence, rapide, pour exposer le parcours d'une requête http par exemple dans un contexte donné.

Le site reboltutorial  expose  régulièrement des façons de se simplifier la vie avec REBOL pour des situations bien concrètes quand on est développeur ou chef de projet.

C'est à la suite de la lecture de l'un de leurs billets (sur yUML) que j'ai découvert le site http://www.websequencediagrams.com/  .

Ce site permet à partir d'une grammaire très simple (genre DOT pour les schémas) de créer un diagramme de séquence rapidement, et visuellement bien rendu.

Bien pratique pour des docs urgentes ou clarifier le débat entre experts !

A partir d'une petite étude de leur façon de faire, voici un bout de code en REBOL très pratique.

1/ Vous écrivez votre fichier texte avec la description de votre diagramme.

Par exemple, ceci qui est très simple à comprendre :

User->Portail: Accès Portail
Portail->Backend_SSO: Authentification
Backend_SSO-->Portail: Response_SSO
Portail-->User: Response http

2/ vous exécutez le code suivant : le fichier texte sert de source et est envoyé au site http://www.websequencediagrams.com/ qui crée l'image. Celle-ci est retournée localement dans un répertoire images .

Le code :

change-dir what-dir
;styles: ["default" "plain_text" "rose" "Rose" "qsd" "qsd" "napkin" "napkin" "mscgen" "mscgen" "omegapple" "Omegapple" "modern-blue" "Blue Modern" "earth" "Green Earth" "roundgreen" "RoundGreen" ]
get-hex: func [str][ return replace/all (replace/all (enbase/base str 64) "+" "-") "=" "" ] ; end func
input-files: next request-file/path/filter ["*.txt"]
; ----- on est en mode "/path", on traite en boucle les fichiers ----
foreach file input-files [
message: read file
save/png to-file rejoin ["images/" form file ".png"] imgx: load/markup to-url rejoin ["http://www.websequencediagrams.com/cgi-bin/cdraw?lz=" (get-hex message) "&s=modern-blue"]
] ; end foreach

Voilà donc un très court code (7 lignes), qui permet de produire l'image suivante :








Tout cela très rapidement, bien sûr.Il est facile aussi d'imaginer un couplage entre MakeDoc et un peu de code comme celui-là.

Merci REBOL !

===Philippe