allow_any_instance_of(ActionDispatch::Request).to receive(:remote_ip).and_return('74.125.224.72')
let(:headers) do { 'CONTENT_TYPE' => 'application/json', 'ACCEPT' => 'application/json', 'REMOTE_ADDR' => ip } end
Blog d'une équipe de développement Web
allow_any_instance_of(ActionDispatch::Request).to receive(:remote_ip).and_return('74.125.224.72')
let(:headers) do { 'CONTENT_TYPE' => 'application/json', 'ACCEPT' => 'application/json', 'REMOTE_ADDR' => ip } end
L’autre jour j’ai eu besoin d’intervenir sur un ancien projet Rails, qui tourne sur un serveur en Ruby 2.1.5 (sortie en novembre 2014, et sans support depuis mars 2017).
Avant d’envisager une montée de version, il fallait déjà que j’arrive à tester la version actuelle. Je pensais l’affaire rapide avec Rbenv : rbenv install 2.1.5 et le tour était joué.
Vous vous en doutez, la commande a échouée lamentablement. En regardant les logs j’ai compris que le problème était lié au paquet libssl-dev
/usr/include/openssl/asn1_mac.h:10:2: error: #error « This file is obsolete; please update your software. »
Grâce à Google, j’ai compris d’où venait mon problème : les anciennes versions de Ruby (inférieures à la version 2.3) ne sont compatibles qu’avec la version 1.0 du paquet libssl-dev.
Hors Ubuntu 16.04 est fourni avec le paquet en version 1.1.0. Il a donc fallu que je downgrade en version 1.0 le paquet fautif avec la commande suivante
sudo apt-get install libssl-dev=1.0.2g
J’ai pu ensuite installer Ruby 2.1.5 avec Rbenv tout simplement.
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.
# s'exécute tous les jours à 23h30 30 23 * * * df >> /tmp/df.log # s'exécute toutes les 5 minutes */5 * * * * my-script.sh
Donc si on veut mettre en place les tâches récurrentes de notre projet Rails, il nous suffit de :
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 :
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 »
Si un jour vous êtes confronté à ce message d’erreur après avoir compilé ruby, la solution se trouve peut-être dans cet article : Unable to require openssl, install OpenSSL and rebuild ruby … on Ubuntu 14 LTS