2009-10-10 6 views
0

Je pense qu'il me manque quelque chose ici. J'ai un répertoire comme celui-ci:Comment puis-je avoir besoin d'un fichier dans un répertoire avec Ruby?

 
myapp 
|-lib 
    |-package1 
    |-dostuff.rb 
    |-package2 
    |-dostuff.rb 

partir d'une console irb je suis en train de tester la bibliothèque avant de l'ajouter à mon vrai projet (une application Rails). Toutefois, en tapant ceci:

require 'lib/package1/dostuff' 

renvoie une erreur indiquant qu'il ne trouve pas le fichier à charger. J'ai ajouté le répertoire lib au chemin de chargement, mais je ne suis pas en mesure de charger le fichier.

Qu'est-ce que j'oublie? Les deux noms de fichiers ne doivent pas nécessairement être identiques, mais c'est comme ça qu'ils sont générés automatiquement (certains services Web doivent être appelés avec soap4r, chaque paquet représente un groupe différent d'API de service Web)

Répondre

5

Si le répertoire "lib" est dans le chemin de chargement, l'argument à require doit être relatif à lib. Donc, require 'package1/dostuff' sans la lib, sinon il va chercher lib/lib/package1/dostuff.rb.

+0

Cela a fonctionné! Merci! Je savais que c'était quelque chose de simple! –

0

Dans Ruby 1.9, il y a la nouvelle méthode require_relative, qui vous permet de faire require_relative "../package2/dostuff" depuis package1/dostuff.rb.