Utilisation de Sinatra dans Ruby

Dans l'article précédent de ce série d'articles, nous avons parlé de ce qu'est Sinatra. Dans cet article, nous examinerons un vrai code Sinatra fonctionnel, en abordant quelques fonctionnalités de Sinatra, qui seront toutes explorées en profondeur dans les prochains articles de cette série.

Avant de commencer, vous devrez aller de l'avant et installer Sinatra. L'installation de Sinatra est aussi simple que n'importe quel autre joyau. Sinatra a quelques dépendances, mais rien de majeur et vous ne devriez avoir aucun problème à l'installer sur n'importe quelle plate-forme.

$ gem install sinatra

Bonjour le monde!

L'application Sinatra "Hello world" est d'une simplicité choquante. En excluant les lignes obligatoires, le shebang et les espaces blancs, ce ne sont que trois lignes. Ce n'est pas seulement une petite partie de votre application, comme un contrôleur dans une application Rails, c'est tout. Une autre chose que vous remarquerez peut-être, c'est que vous n'avez pas eu besoin d'exécuter quelque chose comme le générateur Rails pour générer une application. Collez simplement le code suivant dans un nouveau fichier Ruby et vous avez terminé.

instagram viewer

#! / usr / bin / env rubis
nécessitent des «rubygèmes»
exiger «sinatra»
faire '/' faire
'Bonjour le monde!'
fin

Bien sûr, ce n'est pas un programme très utile, c'est juste "Hello world", mais des applications encore plus utiles dans Sinatra ne sont pas beaucoup plus grandes. Alors, comment exécutez-vous cette petite application Web? Une sorte de complexe script / serveur commander? Non, lancez simplement le fichier. C'est juste un programme Ruby, lancez-le!

inatra $ ./hello.rb
== Sinatra / 0.9.4 a pris le relais sur 4567 pour le développement avec sauvegarde depuis Mongrel

Pas encore très excitant. Il a démarré le serveur et est lié au port 4567, alors allez-y et pointez votre navigateur Web sur http://localhost: 4567/. Voilà votre message "Bonjour tout le monde". Les applications Web n'ont jamais été aussi faciles dans Ruby auparavant.

Utilisation de paramètres

Regardons donc quelque chose d'un peu plus intéressant. Faisons une application qui vous accueille par son nom. Pour ce faire, nous devons utiliser un paramètre. Les paramètres de Sinatra sont comme tout le reste - simples et directs.

#! / usr / bin / env rubis
nécessitent des «rubygèmes»
exiger «sinatra»
obtenir '/ bonjour /: nom' faire
"Bonjour # {params [: nom]}!"
fin

Une fois cette modification effectuée, vous devrez redémarrer l'application Sinatra. Tuez-le avec Ctrl-C et exécutez-le à nouveau. (Il existe un moyen de contourner cela, mais nous verrons cela dans un prochain article.) Maintenant, les paramètres sont simples. Nous avons fait une action appelée /hello/:name. Cette syntaxe imite l'apparence des URL, alors allez sur http://localhost: 4567 / bonjour / votre nom pour le voir en action.

le /hello partie correspond à cette partie de l'URL de la demande que vous avez faite, et :Nom va absorber tout autre texte que vous lui donnez et le mettre dans le params hachage sous la clé :Nom. Les paramètres sont aussi simples que cela. Il y a bien sûr beaucoup plus que vous pouvez faire avec ceux-ci, y compris les paramètres basés sur l'expression rationnelle, mais c'est tout ce dont vous aurez besoin dans presque tous les cas.

Ajout de HTML

Enfin, embellissons cette application avec un peu de HTML. Sinatra retournera tout ce qu'il obtient de votre gestionnaire d'URL au navigateur Web. Jusqu'à présent, nous venons de renvoyer une chaîne de texte, mais nous pouvons y ajouter du HTML sans problème. Nous utiliserons ERB ici, tout comme dans Rails. Il existe d'autres options (sans doute meilleures), mais c'est peut-être la plus familière, car elle est fournie avec Ruby, et fera l'affaire ici.

Tout d'abord, Sinatra rendra une vue appelée disposition s'il en existe un. Cette vue de mise en page doit avoir un rendement déclaration. Cette déclaration de rendement capturera la sortie de la vue spécifique en cours de rendu. Cela vous permet de créer des mises en page très simplement. Enfin, nous avons un Bonjour vue, qui génère le message bonjour réel. C'est la vue qui a été rendue en utilisant le erb: bonjour appel de méthode. Vous remarquerez qu'il n'y a pas de fichiers de vue séparés. Il peut y en avoir, mais pour une si petite application, il est préférable de conserver tout le code dans un seul fichier. Bien que les vues soient séparées à la fin du fichier.

#! / usr / bin / env rubis
nécessitent des «rubygèmes»
exiger «sinatra»
obtenir '/ bonjour /: nom' faire
@name = params [: nom]
erb: bonjour
fin
__FIN__
@@ disposition





@@ salut

Bonjour !

Et voila. Nous avons une application Hello World complète et fonctionnelle dans environ 15 lignes de code, y compris les vues. Les articles suivants, nous examinerons de plus près les itinéraires, comment vous pouvez stocker et récupérer des données et comment améliorer les vues avec HAML.