Ruby on Rails 7 a introduit un nouvel exécutable bin/dev
.
Il ne sera pas présent par défaut à moins que vous ne créiez une nouvelle application avec l’option --css
ou que vous lanciez la commande css:install
.
Ce fichier appelle la Gem Foreman qui va à son tour exécuter les processus définis dans le fichier Procfile.dev
à la racine de votre projet.
Cette manière de fonctionner vous permet de lancer autant de processus que vous le souhaitez en parallèle, en une seule commande.
Voici un exemple de Procfile
sur l’un de mes projets.
web: bin/rails server -p 3000
css: bin/rails tailwindcss:watch
worker: bundle exec good_job start
guard: bundle exec guard
stripe: stripe listen --forward-to localhost:3000/pay/webhooks/stripe
Tout ceci fonctionne parfaitement jusqu’au moment où vous avez besoin de débugger votre application avec des points d’arrêt. Foreman ne vous permet pas d’accéder à la console de debug d’un processus particulier.
C’est là qu’intervient Overmind. Ce programme fait exactement la même chose que Foreman tout en vous permettant de vous connecter à vos processus.
Installez Overmind sur votre machine comme suit :
# on macOS (with homebrew)
$ brew install tmux
# on Ubuntu
$ apt-get install tmux
Puis lancer vos processus :
$ overmind s -f Procfile.dev
Je vais maintenant mettre un point d’arrêt dans un contrôleur Rails du processus web.
class HomeController < ApplicationController
def index
debugger
# ...
end
end
Depuis un autre terminal, mais dans le même répertoire (où se situe votre Procfile.dev), lancez la commande suivante :
$ overmind c web
Vous pouvez maintenant accéder à la console de Ruby ! 🎉
Bien entendu, cette fonctionnalité n’est pas limitée à Ruby et fonctionne avec n’importe quel programme/langage.