Rails Insights

Comment Écrire un Outil CLI Simple avec Ruby

Ruby est un langage de programmation polyvalent et convivial, idéal pour créer des outils en ligne de commande (CLI). Dans cet article, nous allons explorer comment écrire un outil CLI simple en Ruby. Que vous soyez un débutant ou un développeur expérimenté, ce guide vous fournira les étapes nécessaires pour créer votre propre outil CLI.

Qu'est-ce qu'un Outil CLI ?

Un outil CLI (Command Line Interface) est un programme qui permet aux utilisateurs d'interagir avec le système d'exploitation via des commandes textuelles. Contrairement aux interfaces graphiques, les outils CLI sont souvent plus rapides et plus légers, ce qui les rend idéaux pour les tâches automatisées et les scripts.

Pourquoi Utiliser Ruby pour Créer un Outil CLI ?

Ruby est un excellent choix pour le développement d'outils CLI pour plusieurs raisons :

  • Simplicité : La syntaxe de Ruby est claire et concise, ce qui facilite l'écriture et la lecture du code.
  • Richesse des bibliothèques : Ruby dispose d'une vaste collection de bibliothèques qui peuvent simplifier le développement.
  • Communauté active : La communauté Ruby est très active, offrant de nombreuses ressources et un soutien.

Pré-requis

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 n'est pas installé, vous pouvez le télécharger depuis le site officiel de Ruby.

Étape 1 : Créer un Nouveau Projet

Pour commencer, créez un nouveau répertoire pour votre projet CLI. Ouvrez votre terminal et exécutez les commandes suivantes :

mkdir mon_outil_cli
cd mon_outil_cli

Ensuite, créez un fichier Ruby pour votre outil. Par convention, nous allons l'appeler mon_outil.rb :

touch mon_outil.rb

Étape 2 : Écrire le Code de Base

Ouvrez le fichier mon_outil.rb dans votre éditeur de texte préféré et commencez par écrire le code de base. Voici un exemple simple qui affiche un message de bienvenue :

# mon_outil.rb

puts "Bienvenue dans mon outil CLI !"

Pour exécuter votre outil, utilisez la commande suivante dans le terminal :

ruby mon_outil.rb

Vous devriez voir le message "Bienvenue dans mon outil CLI !" s'afficher.

Étape 3 : Ajouter des Arguments de Ligne de Commande

Les outils CLI sont souvent utilisés avec des arguments pour personnaliser leur comportement. Ruby fournit une méthode simple pour gérer les arguments de ligne de commande via le tableau ARGV. Modifions notre outil pour qu'il prenne un nom en argument :

# mon_outil.rb

if ARGV.empty?
  puts "Veuillez fournir un nom."
else
  nom = ARGV[0]
  puts "Bienvenue, #{nom} !"
end

Maintenant, si vous exécutez votre outil avec un nom, il affichera un message personnalisé :

ruby mon_outil.rb Alice

Vous devriez voir "Bienvenue, Alice !" s'afficher.

Étape 4 : Ajouter des Options avec OptionParser

Pour rendre notre outil plus puissant, nous pouvons ajouter des options à l'aide de la bibliothèque OptionParser. Cela permet aux utilisateurs de spécifier des options comme --help ou --version. Voici comment procéder :

# mon_outil.rb

require 'optparse'

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

  opts.on("-v", "--version", "Afficher la version") do
    puts "Mon Outil CLI version 1.0"
    exit
  end

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

if ARGV.empty?
  puts "Veuillez fournir un nom."
else
  nom = ARGV[0]
  puts "Bienvenue, #{nom} !"
end

Avec ce code, vous pouvez maintenant exécuter votre outil avec les options --version ou --help :

ruby mon_outil.rb --version

Vous devriez voir "Mon Outil CLI version 1.0" s'afficher.

Étape 5 : Ajouter des Fonctionnalités

Maintenant que nous avons les bases, ajoutons quelques fonctionnalités à notre outil. Imaginons que nous voulons créer un outil qui calcule la somme de deux nombres. Voici comment nous pourrions le faire :

# mon_outil.rb

require 'optparse'

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

  opts.on("-v", "--version", "Afficher la version") do
    puts "Mon Outil CLI version 1.0"
    exit
  end

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

  opts.on("-a NUM1 NUM2", "--add NUM1 NUM2", "Ajouter deux nombres") do |num1, num2|
    somme = num1.to_i + num2.to_i
    puts "La somme de #{num1} et #{num2} est #{somme}."
    exit
  end
end.parse!

if ARGV.empty?
  puts "Veuillez fournir un nom."
else
  nom = ARGV[0]
  puts "Bienvenue, #{nom} !"
end

Vous pouvez maintenant exécuter votre outil pour additionner deux nombres :

ruby mon_outil.rb --add 5 10

Vous devriez voir "La somme de 5 et 10 est 15."

Étape 6 : Améliorer l'Expérience Utilisateur

Pour rendre notre outil encore plus convivial, nous pouvons ajouter des messages d'erreur et des validations. Par exemple, nous pouvons vérifier si les arguments fournis pour l'addition sont des nombres :

# mon_outil.rb

require 'optparse'

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

  opts.on("-v", "--version", "Afficher la version") do
    puts "Mon Outil CLI version 1.0"
    exit
  end

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

  opts.on("-a NUM1 NUM2", "--add NUM1 NUM2", "Ajouter deux nombres") do |num1, num2|
    if num1 =~ /\A-?\d+(\.\d+)?\z/ && num2 =~ /\A-?\d+(\.\d+)?\z/
      somme = num1.to_f + num2.to_f
      puts "La somme de #{num1} et #{num2} est #{somme}."
    else
      puts "Erreur : Veuillez fournir deux nombres valides."
    end
    exit
  end
end.parse!

if ARGV.empty?
  puts "Veuillez fournir un nom."
else
  nom = ARGV[0]
  puts "Bienvenue, #{nom} !"
end

Avec cette validation, si vous essayez d'additionner des valeurs non numériques, vous obtiendrez un message d'erreur approprié.

Étape 7 : Conclusion

Félicitations ! Vous avez maintenant un outil CLI simple mais fonctionnel écrit en Ruby. Vous avez appris à :

  • Créer un projet Ruby
  • Gérer les arguments de ligne de commande
  • Utiliser OptionParser pour ajouter des options
  • Ajouter des fonctionnalités et des validations

Les outils CLI peuvent être très puissants et utiles pour automatiser des tâches. N'hésitez pas à étendre votre outil avec d'autres fonctionnalités et à explorer davantage les possibilités offertes par Ruby.

Merci d'avoir suivi ce guide, et amusez-vous à coder !

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.