Gems

Ce sujet est résolu
61449
,

Bonjour,

Je suis tombé amoureux de ruby et je suis entrain de comprendre un peu plus en détail les gems que met à disposition ruby.
Mais j'ai un probleme à utiliser les gems.
J'ai installé Rubygems sur mon Mac tout est bon, j'ai installé donc une gems au hasard pour tester dans un premier temps, mais je n'arrive pas à l'utiliser et il y a tres peu de doc sur ces gems.
J'ai test un petit script pour voir si j'arrive à utiliser la gems mais il ne me la detecte pas.
J'ai vu qu'il faut écrire ca pour utiliser la gems :

require "rubygems"
require_gem "nomdelagems"

mais la gems qu'on install, elle se place ou ? dans le fichier rubygems ? autre part ? afin de pouvoir indiquer le chemin precis.
Je pensais que la gems s'installer dans le dossier rubygems, puis dans le dossier lib, mais la gems téléchargée n'est pas présente ou je pensais.

Merci d'avance,

Cordialement,

5 Réponse

1
,

Tu peux obtenir le dossier contenant les gems en tapant la commande gem env.
Pour utiliser et inclure une gem tente

require 'rubygems'
require 'nomdelagems'
61449
,

Bonjour,

Merci de la reponse, j'ai trouvé cette commande pour savoir ou se trouve la gem installée :

gem which 'nomdelagems'

Donc dans mon fichier je met require et le chemin que cela me donne :

require 'chemin/de/la/gems'

Dans le dossier il y a deux fichiers, le fichier en .rb où les methodes sont codés en ruby et l'autre fichier sans extension, malheureusement j'ai essayé de require les deux mais aucun des deux ne marche.

J'ai telechargé cette gem la : http://www.rubydoc.info/gems/a1521hk_minitest_practice uniquement pour tester et voir comment m'en servir.

require "chemin/de/la/gem"
puts devide(4, 4) 

Mais un fois que j'execute le code, l'interpreteur me dit qu'il ne reconnait pas la methode devide(). il n'arrive pas à trouver la methode dans le fichier require plutot.

Merci d'avance de votre aide.

Cordialement,

1
,

Dans le require tu ne dois pas mettre le chemin complet vers la gem mais seulement le nom de la gem

61449
,
require 'a1521hk_minitest_practice'

il ne reconnait toujours par la methode devide() snifff, je comprends pas...
Cependant lorsque je met un mauvais nom dans la gem, il me sort une autre erreur en disant que c'est vraiment le require qui ne marche pas.

61449
,

Merci Advancid et Grafikart, ca marche !