Ruby On Rails – Des tâches récurrentes simples avec Whenever

Il arrive que dans la vie d’un projet on ait besoin d’exécuter certaines tâches de manières récurrentes (export/import de données, suppression de vieux comptes, envoi de mail, …).

Sous Linux, la méthode la plus simple est d’utiliser l’utilitaire cron : il nous permet de lancer commandes, et scripts à une date et une heure précise et/ou de manière récurrente.

Exemples.

Donc si on veut mettre en place les tâches récurrentes de notre projet Rails, il nous suffit de :

  1. nous connecter sur le serveur
  2. modifier la crontab pour y inclure nos nouvelles tâches

cron est un utilitaire réputé, il existe donc de très nombreuses ressources pour apprendre à l’utiliser. Mais il y a plusieurs choses qui me gênent :

  • la syntaxe cron pour définir les heures et la récurrence est parfois dure à relire (ex. 0 0 25-31 1,3,5,7,8,10,12 0 my-script.sh )
  • la modification de la crontab peut avoir un impact global pas forcément prévu
  • on ne peut pas connaître l’ensemble des tâches récurrentes d’un projet
  • le fait de devoir aller sur le serveur pour mettre à jour la crontab, oblige à le faire sur chaque machine sur laquelle l’application est déployée, il peut donc y avoir des oublis

C’est pourquoi j’ai pris l’habitude d’utiliser la gem Whenever pour gérer les tâches récurrentes de mes projets Rails

Continuer la lecture de « Ruby On Rails – Des tâches récurrentes simples avec Whenever »

Gérer les sources de vos gems

Par défaut, lorsqu’on installe une gem avec un gem install, l’url de téléchargement de cette gem est https://rubygems.org. Il peut cependant être intéressant de modifier ou d’ajouter des sources de téléchargement, notamment lorsqu’on possède un serveur de gem perso.

Pour cela, quelques commandes sont utiles :

Lister les sources

Ajouter une source

Supprimer une source

Source : http://guides.rubygems.org/command-reference/#gem-sources

Rails : Manipuler des données géographiques

Avec l’API de Google Maps, on peut trouver la distance entre deux points en JavaScript :

Source : developers.google.com


En Ruby on Rails, il existe plusieurs Gem pour manipuler des données géographiques, notamment Geokit et Geocoder.

Geokit

Pour travailler avec des kilomètres et non en miles, il faut penser à modifier la variable de configuration Geokit::default_units = :kms.

Source : github

Geocoder

Ryan Bates a fait une vidéo très claire sur l’utilisation de la gem Geocoder : RailsCast.

Comme pour Geokit, l’unité par défaut est le miles. Pour passer en kilomètres, la config est la suivante :

Source : rubygeocoder.com, github

Rails : la gem did_you_mean pour vous servir !

Aujourd’hui un petit article pour vous présenter rapidement une Gem très sympathique : « Did you mean ». Il est fréquent pour un développeur de faire des fautes de frappes, on peut parfois se tromper d’un caractère s’en forcément s’en rendre compte et perdre du temps … ça se termine souvent par « pfff la loose, j’ai mal écrit ma méthode » ou autre (à remplacer par la phrase qui vous convient ^^).

C’est là que la Gem did_you_mean peut entrer en action :

Un petit bundle install et c’est tout ! Le résultat ? Voici un petit exemple (réalisé pour la démo, donc un peu gros je vous l’accorde) :

Cela me génère une erreur (car j’ai mal tapé ActiveRecord dans mon cas) et did_you_mean entre en jeu et me propose la bonne syntaxe :

screen_didyoumean

Et voilà, cela fonctionne dans beaucoup de cas je vous laisse découvrir plus en détails la Gem sur la page Github github.com/yuki24/did_you_mean.