mardi 4 janvier 2011

Discovering Sinatra : Episode 2 => Skeleton generator

Application skeleton for Sinatra


Dans cet article on va pas aborder des techniques ou fonctionnalités propres à Sinatra mais plutôt de la création d'applications Sinatra.
Sinatra nous permet de créer des applications WEB de façon très simple, rapide et claire mais ne nous donne pas des outils pour nous faciliter la création de certains composants souvent statiques tels que le Gemfile, config.ru et les répertoires tels que views, public, lib etc que nous utilisons souvent dans nos applications comme le font Rails et Merb. Les créer manuellement pour chaque nouvelle application n'est pas très intelligent c'est pour ça que j'ai écrit ce petit script SHELL qui permet de générer le squelette d'une application Sinatra.

# Le contenu du script /usr/bin/sinatra-app-gen.sh

if [ "$1" == "" ]; then
  echo " Utilisation: "
  echo "'sinatra-gen nom_application' pour créer l'architecture d'une nouvelle application Sinatra";
else
  if [ ! -d $1 ]; then
        mkdir $1;
        mkdir $1/views;
        mkdir $1/lib;
        mkdir $1/public;
        mkdir $1/public/css;
        mkdir $1/public/images;
        mkdir $1/public/js;
        echo "require 'sinatra' " > $1/app.rb        
        echo "source 'http://rubygems.org' gem 'sinatra' " > $1/Gemfile
        echo "require 'app.rb'" > $1/config.ru
        echo "<!DOCTYPE html>\n<html>\n<head>\n<title>$1</title></head><body><%= yield %></body></html>" > $1/views/layout.erb
        echo "Application Sinatra [ $1 ]créée avec succès.";
        cd $1; ls ;
      else
        echo "Erreur lors de la création de l'application : $1 existe déjà.";
    fi;
fi

Après avoir lu le code source vous imaginez déjà ce qu'il fait : que des choses simples :). Now apprenons à l'utiliser.
Installation du script :
 créer un fichier, le nommer comme suit : sinatra-app-gen, y mettre le code SHELL précédent et le mettre dans le /usr/bin et le render exécutable (chmod +x).

Utilisation :
    $ sinatra-app-gen mon_application_sinatra

It's all.

Aucun commentaire:

Enregistrer un commentaire