L'essentiel de Ruby on Rails

Connaître les tâches rake

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Rake est une gem embarquée dans les applications Ruby on Rails. Découvrez quelques-unes de ses nombreuses applications.
07:47

Transcription

Nous allons voir dans cette vidéo comment générer un ensemble de sujets de discussion afin de remplir un peu notre base de données. Cela va être pour moi l’occasion de vous présenter trois bibliothèques : Rake, Faker et HighLine. Rake est une gem embarquée par défaut dans les applications Ruby on Rails depuis très longtemps. Cette gem permet d’exécuter un ensemble de tâches au sein de votre application Ruby on Rails. Vous en avez peut-être et même surement déjà utilisé, notamment la tâche rake db:migrate pour exécuter les migrations et changer la structure de notre base de données. Pour avoir une liste des tâches que vous pouvez utiliser au sein de votre application, vous pouvez utiliser la commande rake -T. Chaque ligne correspond à une commande que vous pouvez exécuter au sein de votre terminal. Vous voyez à droite une courte description et retrouvez notamment rake db:migrate. Depuis la version 5 de Rails, il est également possible d’exécuter ces tâches à l’aide de la commande rails, c’est-à-dire que vous pouvez à la fois utiliser rake db:migrate ou rails db:migrate pour exécuter exactement la même tâche. Nous allons maintenant créer nous-même notre propre tâche rake. Mais avant de le faire, j’aimerai vous présenter les deux autres bibliothèques. Faker, c’est vraiment une bibliothèque ou une gem qui vous permettra de générer des données aléatoires. Nous allons notamment utiliser la classe GameOfThrones. Disons que les sujets de discussion seront tous créés par des fans de cette série. Grâce à Faker, nous pouvons générer un personnage aléatoire de GameOfThrones via la méthode character. Nous allons également utiliser la bibliothèque HighLine. Cette dernière va permettre de faciliter la saisie d’informations par l’utilisateur, depuis son terminal, qui seront ensuite récupérées et utilisées au sein de la tâche Rails. Commençons par ajouter ces gem au Gemfile. Ajoutons ici la gem faker. Cette dernière pourra être également utile pour les tests unitaires. Aussi, je la mets au sein du groupe development test. En revanche, HighLine ne nous servira qu’en développement. Je la mets donc ici. N’oubliez pas de mettre également les liens en commentaire vers les documentations des gem pour pouvoir y accéder plus facilement. Maintenant que c’est chose faite, exécutez bundle install. Voilà, nous avons donc ajouté ces deux gem à notre projet. Pas besoin d’ajouter Rake. Rappelez-vous, Rake est inclus par défaut dans Ruby on Rails. Continuons en créant notre tâche Rake. Pour ce faire, allons dans le dossier tasks qui se trouve dans le dossier lib. Créez-y un nouveau fichier. Nous l’appellerons generate_data. Donnez-lui l’extension rake. L’extension rake signifie que ce fichier sera un fichier de tâche Rake. Ce type de fichier commence toujours par le mot-clé namespace. Mettez ensuite un symbole. En général, nous donnons au nom de ce symbole, le même que le nom du fichier. Ensuite, il s’agit d’un bloc de codes, donc les fameux do end. C’est à l’intérieur de ce namespace que vous aller pouvoir définir vos propres tâches Rake. Pour ce faire, il faut utiliser le mot clé task, puis, le nom de la tâche. Ensuite, un do end. Nous pouvons ici utiliser la méthode puts et dire « Bonjour ». Nous pouvons également ajouter une description à cette tâche. Maintenant que c’est chose faite, réexécutons rails -T. Remarquez que nous voyons ici notre tâche Rake que nous venons de créer. Nous retrouvons la description que nous lui avons assignée. Et à gauche, nous avons la commande pour l’exécuter. Au sein d’une tâche Rake, nous pouvons également demander l’exécution d’une autre tâche Rake. Par exemple, ici, nous allons dire que lorsque nous exécutons how, nous voulons également exécuter au préalable, la tâche hello. Testons cela. Nous avons donc bien le Bonjour qui s’affiche grâce à la tâche hello, puis Comment allez-vous ? qui correspond à la tâche how. Mais nous sommes ici pour pouvoir générer un ensemble de sujets de discussion. Retournons dans notre fichier Rake. Ajoutons la tâche topics. Mettons-lui une description et voyons ce que nous allons faire ensuite. Nous allons tout d’abord demander à l’utilisateur combien il veut générer de sujets de discussion. Allons voir un peu la documentation de HighLine pour savoir comment le faire. Si nous regardons un peu, nous voyons que nous pouvons utiliser la méthode ask. Cette méthode va demander à l’utilisateur de renseigner quelque chose. Ici, la documentation nous dit que nous pouvons utiliser require ‘highline/import’ pour éviter d’avoir à effectuer toute la configuration qu’il y a ci-dessus, à savoir, cette ligne-ci. Faisons cela. Ajoutons require ‘highline/import’ au sein de notre fichier Rake. Cela aura pour effet de requérir cette bibliothèque et de nous permettre d’avoir accès directement à ces méthodes comme ask et say. Utilisons donc ask. Nous allons devoir stocker la réponse de l’utilisateur dans une variable. N’oublions pas de transtyper la réponse de l’utilisateur en entier relatif. En effet, par défaut nous obtiendrons une chaîne de caractères. Maintenant que nous avons un entier, nous pouvons utiliser la méthode times pour répéter ce qui va suivre, autant de fois que l’utilisateur le souhaitera. Enfin, pour créer un topic, au lieu d’utiliser topic.new, puis topic.faith, nous pouvons utiliser la méthode create. Nous mettons à l’intérieur un titre issu de Faker, puis un contenu, également ici, de Faker. Lorem.paragraph génèrera un paragraphe avec un ensemble de mots. Testons la commande. Renseignons combien nous en voulons : 10. Nous obtenons une erreur. Mais cela était attendu, du moins peut-être pas par vous qui m’écoutez, mais par moi. L’erreur nous dit que la tâche n’a pas accès à la constante topic. En effet, dans les tâches Rake, par défaut, nous n’avons pas accès à l’environnement Ruby on Rails. Pour y avoir accès, nous devons ici rajouter une = :environment. Cela aura pour effet de changer l’ensemble de l’environnement Ruby on Rails à l’intérieur de la tâche Rake et donc l’ensemble des modèles. Réexécutons. Remettons 10. Et voilà, désormais plus d’erreur. Allons voir ce que cela donne au niveau du site. Comme vous pouvez le voir, cela a bien généré différents sujets de discussion. Allons voir en détail. Nous voyons ici un paragraphe qui a été généré par Faker Lorem. Nous avons donc vu dans cette vidéo trois gem : Rake, HighLine et Faker. Nous avons également créé notre propre tâche Rake pour générer des sujets de discussion avec du contenu aléatoire.

L'essentiel de Ruby on Rails

Concevez des applications web évolutives et intemporelles avec Ruby on Rails. Installez l’environnement, réalisez un projet de stack overflow, enrichissez-le, etc.

6h08 (85 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !