Introduction à Sinatra - 1ère Partie
Voilà la première partie d'un petit tutorial pour se mettre à Sinatra, un micro-framework en Ruby, basé sur Rack.
Vous n'avez pas réellement besoin de connaitre ruby pour suivre ce tutorial mais c'est toujours un plus. Je considère aussi que vous avez déjà ruby d'installé ainsi que gem (sinon vous trouverez très facilement les tutos nécessaires).
Je vous propose donc de construire un clone simpliste de Pastebin !
Commençons par le commencement, créez un dossier dédié à votre application. Appellons-la Duopaste. Créez donc simplement un fichier duopaste.rb contenant ceci :
Ici rien de fantastique, on inclue simplement les gemmes nécessaires au bon fonctionnement de Sinatra.
La syntaxe de Sinatra est extrêmement simple et claire. Pour preuve voilà notre première méthode :
- Dans ce tout petit bout de code, il se passe plusieurs choses :
- On indique à Sinatra ce qu'il faut faire lorsqu'on accède à la racine du serveur par une requête GET
- On affiche un template ERB (Embedded Ruby)
Et c'est tout !
Cela dit avant tout, il faut penser à stocker nos snippet de code. Pour cela je vous propose d'utiliser DataMapper, un ORM bien connu dans le monde du Ruby.
Pensez d'abord à rajouter au début de votre fichier :
afin d'importer les ressources nécessaires à DataMapper.
Et voilà, avec ce petit bout de code, on a un modèle fonctionnel composé de :
- Un id de type Serial, qui représente généralement une colonne autoincrement
- Un champs body de type Text où l'on va stocker le contenu du snippet
Il nous faut ensuite créer un template pour ajouter des snippets :
Pas besoin d'explications, c'est un formulaire tout ce qu'il y a de plus banal. Ensuite il faut créer un autre template pour afficher nos snippet :
À nouveau rien de magique, on affiche simplement le contenu du snippet. Pensez à mettre les templates dans un sous-répertoire Views.
Il nous reste maintenant à créer la logique pour que tout ça se mette en place ! Il nous faut 3 actions :
- Afficher le formulaire de création
- Créer un snippet
- Voir un snippet
Tout simple encore une fois :
La touche finale pour pouvoir lancer notre petit site, créez un fichier config.ru :
C'est nécessaire pour lancer votre site. Ensuite un simple :
Et vous pouvez utiliser votre site en vous connectant sur localhost:4567 !
Si vous voulez le code "complet", vous pouvez jeter un coup d'oeil sur le repository GitHub : duopaste
Pour le reste je vous conseille de jeter un coup d'oeil à la documentation de Sinatra et de DataMapper.
Dans la deuxième partie nous verrons comment mettre un peu de coloration syntaxique, et comment déployer tout ça sur Heroku !
