Aujourd’hui sur le Blog du Webdesign, découvrez l’utilisation de plugins pour Padrino.

Présentation de padrino

Pour ceux qui ne connaissent pas Padrino, voilà une petite mise en bouche :

Padrino est un micro-framework pour le langage ruby construit autour de la bibliothèque Sinatra. Concrètement Padrino va permettre de créer un cadre pour votre application web en apportant une architecture particulière simplifiant l’organisation et le développement de notre application et ainsi nous faire gagner en productivité.

Pour plus d’informations et vous faire une idée plus précise, je vous invite à vous rendre sur le site officiel le padrino.

Gagnez du temps dans vos créations graphiques !

+ 1,6 millions de ressources (photos, mockups, themes Wordpress etc.) premium à votre disposition pour livrer plus rapidement.

Padrino et ses plugins

Parmi les outils les plus puissants fournis par Padrino se trouvent les plugins.

L’avantage des plugins est qu’ils permettent d’automatiser de nombreuses taches pour nous faire gagner du temps, comme la génération de pages ou l’installation de gems.
Nous allons d’ailleurs voir le plugin Better Errors avec sa gem en guise d’exemple.

Installation classique de Better Errors

Better Errors est une gem qui remplace la page d’erreur standard par une page plus complète et pratique. L’installation normale sans passer par un plugin (sur Padrino) se déroule comme ceci :

– Ajoutez cette ligne à votre Gemfile :
gem ‘better_errors’

– Puis dans config/boot.rb ajouter :

require "better_errors"
#Setup better-errors
if Padrino.env == :development
  Padrino::Application.use BetterErrors::Middleware
  BetterErrors.application_root = PADRINO_ROOT
  BetterErrors.logger = Padrino.logger
end

– Enfin bundle pour la gem, redémarrez Padrino et simulez une erreur pour voir le résultat.

Installation de Better Errors via son plugin

L’installation classique de better errors n’est pas très compliquée, seulement cela demande d’aller se renseigner sur la procédure d’installation et de ne pas faire d’erreur durant les manipulations. De plus certaines Gems sont bien plus complexes à faire fonctionner. L’utilisation d’un plugin permet de réaliser la même chose en une seule commande !

Lien du plugin

Note: chez moi ce plugin ne fonctionne pas dans sa version d’origine, j’ai donc dû le modifier un peu pour qu’il fonctionne.

– Saisir dans le bash :

padrino g plugin https://raw.github.com/grogui/padrino-recipes/master/plugins/better_errors_plugin.rb

– Enfin bundle pour la gem, redémarrez Padrino et simulez une erreur pour voir le résultat.

Fonctionnement d’un Plugin

Un plugin est un simple fichier texte qui s’occupe de saisir ce que l’on veut dans les fichiers choisis.

Pour comprendre le fonctionnement d’un plugin, voyons voir l’interieur de better_errors_plugin.rb :

# Better Errors plugin on Padrino
#
# https://github.com/charliesome/better_errors
#
GEMFILE = <<-GEMFILE
# Better Errors
group :development do
  gem "better_errors"
  gem "binding_of_caller"
end

GEMFILE
append_file("Gemfile", GEMFILE)

CONFIG = <<-CONFIG

# Setup better_errors
if Padrino.env == :development
  require 'better_errors'
  Padrino::Application.use BetterErrors::Middleware
  BetterErrors.application_root = PADRINO_ROOT
  BetterErrors.logger = Padrino.logger
end
CONFIG


inject_into_file destination_root('config/boot.rb'), CONFIG, :after => "Bundler.require(:default, PADRINO_ENV)n"

Ici on répète simplement les étapes de l’installation standard de la gem Better Errors : on demande au plugin d’ajouter au fichier Gemfile les gems better_errors et binding_of_caller , puis dans le fichier de boot (config/boot.rb) de saisir la configuration de la gem juste après “Bundler.require(:default, PADRINO_ENV)n” .

Un autre exemple de création d’un plugin qui a pour simple but de créer une page :

##
# PAGE_EXAMPLE
##

#Ajoute une route dans app.rb
CONFIG = <<-CONFIG
  get :index do
    render :home
  end
CONFIG

inject_into_file destination_root('app/app.rb'), CONFIG, :after => "enable :sessionsn"
#Crée un fichier vide home.slim
require 'fileutils'
FileUtils.touch('app/views/home.slim')

 

Ainsi lorsque je saisis la commande padrino g plugin page_example.rb, mon plugin ajoute une route au fichier app.rb et crée la page home.slim dans mon dossier views.

Conclusion

Pour une liste non exhaustive de plugin disponible pour Padrino, visitez ce dépot github.

Pour conclure les plugins sont des outils très utiles, pour l’automatisation de tâches ou l’installation de gems, car ils permettent d’installer une gem ou une configuration sans avoir à se former, tout en étant sur que l’installation sera identique à chaque fois. Il suffit pour cela d’utiliser un plugin pre-existant ou qu’un membre de votre équipe fasse un plugin pour la fonctionnalite demmande.

A consommer sans moderation !