Articles

Une liste d’articles sur le développement Web, Ruby on Rails, et plus.

Les Form Objects, l'abstraction manquante dans Rails

Tags : Rails Design Pattern

Publié le 18 septembre 2024

Cessez de mettre le bon code au mauvais endroit !

Il est facile de s’emballer en utilisant le scaffolding de Rails, mais dans certains cas un simple objet Ruby (un PORO) suffit amplement. Et les Form Objects sont particulièrement efficaces pour alléger les modèles et les contrôleurs, tout en regroupant des fonctionnalités qui vont ensemble dans des objets faciles à tester.

Tester améliore le design du code

Tags : Tests TDD Rspec Couverture de tests

Publié le 7 septembre 2024

Jeudi dernier, j’ai assisté à l’atelier en ligne « Good Enough Testing » (juste ce qu’il faut de tests), animé par Lucian Ghinda, qui rédige l’infolettre Short Ruby. Je suis content d’avoir vu l’inscription peu après sa publication, car l’atelier s’est rempli en moins d’une journée !

J’ai pris le temps de combiner les connaissances acquises lors de l’atelier avec ce que j’ai appris au fil des années, dans des blogs et des livres.

Les contextes de validation dans Rails

Tags : Ruby on Rails Validation

Publié le 26 août 2024

Les validateurs Rails sont expressifs et puissants, tout en étant faciles à utiliser et à étendre. Une fonctionnalité intéressante est que les validateurs peuvent s’exécuter uniquement lorsqu’une condition est remplie (en utilisant if: et unless:), ou dans des contextes sélectionnés, en utilisant on:. Mais saviez-vous que vous pouvez également définir des contextes personnalisés ? Voici comment le faire, et pourquoi cela pourrait être utile.

Utiliser Bundler dans un script ruby sans rien afficher dans le terminal

Tags : Bundler Ruby

Publié le 13 mars 2024

Il est possible d’utiliser Bundler pour installer des gemmes dans un script ruby, et c’est super pratique ! Voici comment empêcher Bundler d’afficher quoi que ce soit pendant l’installation des gemmes, et une solution pour un problème qui peut se produire quand on utilise cette option.

Trucs et astuces Rspec

Tags : Rspec Ruby Rails Tests DX

Publié le 13 mars 2024

Tester une application est indispensable mais les tests sont souvent lents, ce qui fait perdre le fil et rend la correction des bugs plus longue et complexe. Voici quelques astuces pour ne faire tourner que les tests utiles et arrêter de perdre du temps à regarder des lignes de points verts défiler à l’écran…

Exécuter des commandes en utilisant une version Ruby différente à l'aide de rbenv

Tags : Ruby rbenv

Publié le 27 août 2023

Lors de la création d’un script pour tester les mises à niveau de la version Ruby dans un système utilisant rbenv, j’ai remarqué qu’exécuter bundle install à partir d’un script Ruby utilise la version du script au lieu de celle définie dans le répertoire.

Renvoyer une image par défaut avec ActiveStorage stocké sur disque

Tags : Ruby on Rails ActiveStorage

Publié le 19 avril 2023

Pour une application utilisant le stockage DiskService d’ActiveStorage, j’ai eu besoin de copier des données de la base de production dans ma base de développement. Je ne voulais pas récupérer les fichiers stockés, j’ai donc fait en sorte d’afficher une image ActiveStorage par défaut au lieu d’une erreur 404.

Configurer Fontawesome dans un site web basé sur Bridgetown

Tags : BridgetownRB FontAwesome Javascript

Publié le 21 mars 2023

La documentation Bridgetown est claire et lisible mais elle n’indique pas toutes les étapes nécessaires pour intégrer FontAwesome, voici donc comment j’ai procédé lorsque je suis passé sur ce générateur de site statique.

Un concern réutilisable pour filtrer les modèles dans Ruby on Rails

Tags : Ruby on Rails Concerns

Publié le 28 juin 2022

Je voulais implémenter un système de filtrage générique pour des modèles dans Ruby on Rails, en procédant un peu différemment de ce que Justin Weiss et Fabio Pitino proposent.

Stocker et accéder à des paramètres JSONB dans PostgreSQL et Rails

Tags : Ruby on Rails PostgreSQL JSON

Publié le 17 août 2021

PostgreSQL 9.4 et supérieures permettent de stocker des données JSON nativement, et Rails simplifie l’utilisation de ce format.

Générer des URLs sémantiques avec Rails 6, FriendlyId et CanCanCan

Tags : Ruby on Rails FriendlyId CanCanCan

Publié le 18 juillet 2020

Pour une application utilisant Ruby on Rails 6, je devais générer des URLs sémantiques basées pour un modèle. Je voulais également que l’URL soit mise à jour en cas de modification, et rediriger l’ancienne version de l’URL si besoin. Contrainte supplémentaire, ce projet utilise la gemme CanCanCan pour la gestion des droits.

Voici le code que j’ai mis en place pour générer et mettre à jour des URLs sémantiques compatibles avec le chargement automatique de CanCanCan.