đȘđ Booster votre productivitĂ© avec .irbrc
Temps de lecture : 6 minutes
Hello les petits Biscuits !
Bienvenue sur la 40Úme édition de Ruby Biscuit.
Vous ĂȘtes maintenant 601 abonnĂ©s đ„ł
Bonne lecture.
Booster votre productivité avec .irbrc
En tant que dĂ©veloppeur RoR je passe ma vie avec un terminal ouvert. Il y a quelques annĂ©es, je me suis aperçu que beaucoup trop souvent je tapais les mĂȘmes choses dedans. Mais aujourdâhui câest beaucoup moins vrai. Et je me suis dit quâil Ă©tait grand temps de vous faire part de mes petites astuces đ
Le setup en 10 secondes
PlutĂŽt que dâexpliquer le problĂšme, on va directement passer Ă la solution car câest tellement rapide, dâailleurs il ne reste plus que 7 secondes !
Et voilĂ ! đ Maintenant quand vous lancerez irb, vous aurez un joli message pour vous dire que votre .irbrc est chargĂ©.
Je vous entends dâici. âMais moi je nâutilise jamais irbâ. Mais est-ce que par hasard vous utilisez de temps en temps un petit rails console dit rails c pour les intimes ?
Car cela fonctionne aussi!
â ïž Si jamais cela ne marche pas chez vous, câest certainement que vous utilisez pry et non irb. Il suffit de crĂ©er un .pryrc avec ceci dedans et câest rĂ©glĂ© :
Câest parti pour le boost đ
Je vais vous donner quelques exemples que jâai glanĂ© Ă droite et Ă gauche, ainsi que quelques uns perso.
Me
Dans quasi toutes les applications jâai un model User et trĂšs souvent jâexiste moi-mĂȘme dans les utilisateurs.
Donc je me retrouve souvent Ă faire des :
Quand je reste quelques temps dans une entreprise, je finis par connaĂźtre mon id par cĆur donc cela va un peu plus vite :
Mais maintenant jâai cela dans mon .irbrc :
Donc dans mon terminal je peux faire: me.projects.last au lieu de User.find_by(email: âmon@email.comâ).projects.last
Models
Cela mâarrive quelques fois dâĂȘtre sur une application et dâavoir besoin de lister tous les models.
Avoir la liste des models en soi nâapporte pas beaucoup plus que de parcourir le dossier models, mais si je veux facilement lister tous les models qui ont le module Taggable je peux faire cela :
Mais câest quoi ce âitâ ? đ Le paramĂštreâitâ de Ruby 3.4
Ou lister tous les models qui ont une relation avec le model User :
Dans mon application derniĂšrement je voulais savoir sâil y avait des models qui avaient la colonne comment Ă nil. Mais je sais que jâai plus de 10 models qui avaient une colonne comments. Pas de souci :
Multi-tenants
Kesako ? đ Gem Act At Tenant
Dans un projet jâai du multi tenants. Lors dâune requĂȘte http pas de souci, mais en console, avant mĂȘme de pouvoir faire quoique ce soit, je suis obligĂ© de set le tenant.
Ă chaque fois je dois faire :
Et comme vous pouvez le voir la syntaxe est loooongue...
Mais maintenant jâai ça :
Clear
Usage préféré :
tt et crtt
Dans cette exemple je travaille sur un service `MonServiceSurLequelJeTravaille`, qui a besoin dâune instance de `Project` toute neuve. Tant que je travaille sur ce service, je vais passer ma vie Ă Ă©crire ces trois lignes dans mon terminal :
Afin de juste pouvoir faire un key up dans mon terminal pour relancer ma derniĂšre commande, je prĂ©fĂšre Ă©crire ces trois lignes dans un fichier test.rb et dans mon terminal je ne fais quâun load(âtest.rbâ)
(comme jâutilise cette astuce dans tous mes projets rails, je lâai rajoutĂ© dans mon gitignore global)
Jâimagine que vous trouverez aussi load(âtest.rbâ) beaucoup trop long Ă Ă©crire, donc mon .irbrc sâest Ă©toffĂ© :
En rĂ©alitĂ© tt je ne lâutilise rarement car maintenant il y a la petite soeur :
lm
Mon problÚme: Je passe ma vie à oublier les noms de méthodes.
Par exemple:
Je sais quâil y a plein de mĂ©thodes qui jouent avec la case sur les strings.
Quand jâajoute une colonne
firstnameà mon user, il y a une bonne vingtaine de méthodes qui sont générées
Mais dans un cas comme dans lâautre, je nâai pas la prĂ©tention (ni le dĂ©sir) de toutes les connaĂźtre par cĆur.
En ruby on peut faire cela :
Beaucoup trop long! đ€ź Du coup jâai rajoutĂ© cela dans mon .irbrc
Et maintenant sur nâimporte quel objet je peux faire .lm suivi par ce que je cherche. Donc si je reprends mon exemple :
Et ensuite ?
Moi jâutilise mon irb de cette façon, mais ce fichier est avant tout lĂ pour configurer votre irb. Vous avez la main sur le prompt, les couleurs et autre. Il y a beaucoup dâarticle dessus, et personnelement je nâai jamais ressenti le besoin de toucher cette configuration.
Pour ma part, je mâen sers de deux façons:
- Soit pour des choses que je tape trĂšs souvent, et oĂč les taper en 3 lettres au lieu de 20 me fait gagner beaucoup de temps.
- Soit des choses oĂč je sais que la syntaxe est compliquĂ©e, que je nâutilise pas trĂšs souvent, mais quand jâen ai besoin cela me fait gagner du temps de ne pas rechercher la syntaxe (ex: models â)
Câest donc Ă vous de voir ce que vous faites souvent dans une console! đ
Un dernier exemple
Dans la derniĂšre application que jâai intĂ©grĂ©, on a des variants (de produit) qui ont des codes-barres.
On passe notre vie Ă les voir sur lâinterface, mais leur id nâapparait jamais dans lâurl, car ils sont toujours visible sur la page dâune autre ressource. Or câest souvent notre point dâentrĂ©e pour les debugs.
Jâai donc eu un nouveau besoin: Pouvoir chargĂ© vite en mĂ©moire un variant depuis un code-barres :
â Nâoubliez pas que lorsque vous surchargez des objets bas niveau, cela peut avoir des impacts. VĂ©rifiez bien que les noms de mĂ©thodes sont disponibles !
Et voilĂ đ
â Joseph




















