Fin du mois d'août. Fin des vacances1, et avant de commencer une nouvelle année académique, il est nécessaire de terminer la précédente. Et donc, voici venu le temps des secondes sessions.
En tant que prof, j'aime bien les examens oraux, et j'aime bien les questions tirées au hasard, c'est pour cela que j'avais développé un petit script CGI en Perl. Rien de bien excitant.
Mais durant mes lectures d'été, je suis tombé sur un billet d'un mongueur français traitant d'une autre autre manière de faire des applications web. Ce mongueur, c'est sukria, et cette autre manière de faire, c'est Dancer2.
Bref, cela m'a donné envie de passer d'un script CGI à une application web autonome ! La voici :
#!/usr/bin/env perl
use strict;
use warnings;
use YAML;
use Dancer;
use Template;
my $file = shift(@ARGV) or die "Usage: $0 questions.yml";
my $questions = YAML::LoadFile($file);
get '/random' => sub {
my $random_index = int rand scalar(@{$questions});
my $question = $questions->[ $random_index ];
template 'random' => { question => $question, number => $random_index + 1 };
};
Dancer->dance();
Et donc, je lance cette application à partir d'une ligne de commande :
$ questions_roll.pl /path/to/questions.yaml
Et je peux voir les lignes suivantes :
~ >> Listening on 127.0.0.1:3000 == Entering the development dance floor … ~
Et donc, en pointant mon navigateur à l'adresse http://localhost:3000/random, je peux voir s'afficher une question au hasard.
Vraiment simple, non ? Tellement simple qu'il m'est déjà venu quelques idées d'améliorations. Ce ne sera probablement plus pour cette session d'examen, mais je garde ces idées au chaud.
Notes :
1 enfin, ce qui me tient lieu de vacances
2 en fait, Dancer est lui même une réécriture de Sinatra en Perl. The Pragmatic Bookshelf a édité deux screencasts sur ce sujet. Je n'ai pas encore eu le temps de les regarder, mais cela ne tardera pas !

Laisser un commentaire