Rails Insights

Options de ligne de commande dans Ruby CLI

Ruby est un langage de programmation puissant et polyvalent, souvent utilisé pour le développement web, l'automatisation des tâches et bien plus encore. L'une des fonctionnalités les plus utiles de Ruby est sa capacité à gérer les options de ligne de commande, ce qui permet aux développeurs de créer des applications CLI (Command Line Interface) interactives et conviviales. Dans cet article, nous allons explorer comment utiliser les options de ligne de commande dans Ruby, en fournissant des exemples pratiques et des conseils pour vous aider à démarrer.

Qu'est-ce qu'une interface en ligne de commande (CLI) ?

Une interface en ligne de commande (CLI) est un moyen d'interagir avec un programme informatique en tapant des commandes dans un terminal ou une console. Contrairement aux interfaces graphiques (GUI), qui utilisent des éléments visuels pour interagir avec l'utilisateur, les CLI reposent sur du texte. Cela peut sembler intimidant au début, mais les CLI offrent souvent plus de flexibilité et de puissance pour les utilisateurs avancés.

Pourquoi utiliser des options de ligne de commande ?

Les options de ligne de commande permettent aux utilisateurs de personnaliser le comportement d'un programme en fournissant des arguments lors de son exécution. Cela peut inclure des paramètres tels que :

  • Spécifier un fichier d'entrée ou de sortie
  • Activer ou désactiver certaines fonctionnalités
  • Définir des niveaux de verbosité pour les messages de log
  • Passer des options de configuration

En offrant des options de ligne de commande, vous permettez à vos utilisateurs de tirer le meilleur parti de votre application, en l'adaptant à leurs besoins spécifiques.

Comment gérer les options de ligne de commande en Ruby

Ruby propose plusieurs bibliothèques pour gérer les options de ligne de commande, mais l'une des plus populaires est la bibliothèque intégrée OptionParser. Cette bibliothèque facilite la définition et l'analyse des options de ligne de commande. Voyons comment l'utiliser.

Installation de Ruby

Avant de commencer, assurez-vous d'avoir Ruby installé sur votre machine. Vous pouvez vérifier cela en exécutant la commande suivante dans votre terminal :

ruby -v

Si Ruby est installé, vous verrez la version de Ruby affichée. Sinon, vous pouvez télécharger et installer Ruby depuis le site officiel.

Utilisation de OptionParser

Voici un exemple simple d'utilisation de OptionParser pour gérer les options de ligne de commande dans une application Ruby :

require 'optparse'

options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: mon_programme.rb [options]"

  opts.on("-f", "--fichier FICHIER", "Spécifiez le fichier d'entrée") do |f|
    options[:fichier] = f
  end

  opts.on("-o", "--output SORTIE", "Spécifiez le fichier de sortie") do |o|
    options[:sortie] = o
  end

  opts.on("-v", "--verbose", "Activez le mode verbeux") do
    options[:verbose] = true
  end

  opts.on("-h", "--help", "Affiche l'aide") do
    puts opts
    exit
  end
end.parse!

puts "Fichier d'entrée : #{options[:fichier]}" if options[:fichier]
puts "Fichier de sortie : #{options[:sortie]}" if options[:sortie]
puts "Mode verbeux activé" if options[:verbose]

Dans cet exemple, nous avons défini plusieurs options :

  • -f ou --fichier : pour spécifier le fichier d'entrée.
  • -o ou --output : pour spécifier le fichier de sortie.
  • -v ou --verbose : pour activer le mode verbeux.
  • -h ou --help : pour afficher l'aide.

Lorsque vous exécutez ce programme, vous pouvez passer des options comme suit :

ruby mon_programme.rb -f input.txt -o output.txt -v

Gestion des erreurs

Il est important de gérer les erreurs lors de l'analyse des options de ligne de commande. Par exemple, si un utilisateur oublie de spécifier un fichier d'entrée, vous pouvez afficher un message d'erreur approprié. Voici comment vous pouvez le faire :

if options[:fichier].nil?
  puts "Erreur : Vous devez spécifier un fichier d'entrée."
  puts opts
  exit 1
end

Exemples avancés d'utilisation de OptionParser

Maintenant que nous avons couvert les bases, examinons quelques exemples plus avancés de l'utilisation de OptionParser.

Options avec des arguments multiples

Vous pouvez également définir des options qui acceptent plusieurs arguments. Par exemple, si vous souhaitez permettre à l'utilisateur de spécifier plusieurs fichiers d'entrée, vous pouvez le faire comme suit :

opts.on("-f", "--fichiers FICHIERS", Array, "Spécifiez les fichiers d'entrée") do |fichiers|
  options[:fichiers] = fichiers
end

Avec cette option, l'utilisateur peut passer plusieurs fichiers comme ceci :

ruby mon_programme.rb -f fichier1.txt,fichier2.txt,fichier3.txt

Options avec des valeurs par défaut

Il est également possible de définir des valeurs par défaut pour vos options. Cela peut être utile si vous souhaitez que certaines options aient des valeurs prédéfinies si l'utilisateur ne les spécifie pas. Voici un exemple :

options[:sortie] = "sortie.txt" # Valeur par défaut

opts.on("-o", "--output SORTIE", "Spécifiez le fichier de sortie") do |o|
  options[:sortie] = o
end

Dans cet exemple, si l'utilisateur ne spécifie pas de fichier de sortie, le programme utilisera "sortie.txt" par défaut.

Affichage d'un message d'aide personnalisé

Vous pouvez également personnaliser le message d'aide affiché lorsque l'utilisateur demande de l'aide. Cela peut être fait en modifiant le texte de la bannière :

opts.banner = "Usage: mon_programme.rb [options]\n\nOptions disponibles :\n"

Conclusion

Les options de ligne de commande sont un excellent moyen d'améliorer l'interaction de vos utilisateurs avec vos applications Ruby. En utilisant la bibliothèque OptionParser, vous pouvez facilement gérer les options et les arguments, offrant ainsi une expérience utilisateur plus riche et personnalisée.

Nous avons couvert les bases de l'utilisation de OptionParser, y compris la définition d'options, la gestion des erreurs et des exemples avancés. Avec ces connaissances, vous êtes maintenant prêt à créer vos propres applications CLI en Ruby. N'hésitez pas à expérimenter et à ajouter des fonctionnalités supplémentaires pour rendre vos programmes encore plus puissants et conviviaux.

Amusez-vous bien avec Ruby et bonne programmation !

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.