Sinatra, another Song ...
édité Le 21/05/2010 à 20:35 par Trinoo
Il est amusant de voir des noms d'artistes célèbres sur des frameworks : " Frank Sinatra, Django Reinhardt, Thelonious Monk, ...".
Sinatra fait partie de ces frameworks "light", destiné spécialement pour l'écriture rapide d'un service ou d'application "simple" (c'est toujours relatif).
Il s'identifie comme un DSL (domain-specific language) : un langages dédiés.
Alors que la structure MVC de Rails est séparée entre différents répertoires et fichiers. Sinatra semble tout mettre dans un unique fichier (pas tout, et ce n'est pas une obligation)
Pour vous mettre l'eau à la bouche, voici comment se présente un "hello world" sous Sinatra.
# fichier myapp.rb require 'rubygems' require 'sinatra' get '/' do 'Hello world!' end
sudo gem install sinatra #installation de Sinatra ruby myapp.rb #lancer l'application
Passons à quelque chose de plus (relativement) complexe.
get '/:page' do @page = Page.find(params[:page]) haml :show end __END__ @@ layout %html %body %content=yield @@ show %h1= title #page_content= @page.to_htm
Ici, le contrôleur et la vue se trouvent dans le même fichier et cette dernière utilise le "moteur" de template : HAML.
Pour ceux qui sont familiers avec le Restful et les différentes méthodes de requête HTML, voici un exemple qui n'a pas besoin de commentaires
get '/' do .. show something .. end post '/' do .. create something .. end put '/' do .. update something .. end delete '/' do .. annihilate something .. end
Je trouve que ce framework est idéalement conçu pour l'implémentation d'un WebService ou d'une API. bien qu'il utilise la structure MVC, il faut raisonner dans une philosophie différente de Rails avec une vue globale de l'ensemble (pas facile).
Vous serez étonné de découvrir les appllications en ligne qui tournent sous Sinatra. Bonne découverte.
Fly me to the Moon ...
Source:
http://www.sinatrarb.com/http://www.slideshare.net/adamwiggins/lightweight-webservices-with-sinatra-and-restclient-presentation
http://www.rubyinside.com/sinatra-29-links-and-resources-for-a-quicker-easier-way-to-build-webapps-1371.html


