Ruby besoin “aucun fichier à charger” erreur encore clairement dans le chemin d'accès
J'ai essayé d'obtenir un fichier ruby d'exiger d'un autre fichier ruby et j'ai l'impression que je suis fou. Ma configuration est comme suit
Deux fichiers dans " /raid1/ruby-code/test/'
CommandRunner Benchmarker
Benchmarker est le programme principal, à ce point, et veut exiger CommandRunner, j'ai essayé un tas de choses différentes et aucune de ces travaux. Ce qui suit est une liste de toutes les choses que j'ai mis au début de Benchmarker
besoin d'un CommandRunner'
exigent". /CommandRunner'
$LOAD_PATH.annuler le déplacement de Fichier.expand_path(Fichier.dirname($NOM_PROGRAMME)) besoin d'un CommandRunner'
$LOAD_PATH.annuler le déplacement de Fichier.expand_path(Fichier.dirname($NOM_PROGRAMME)) exigent". /CommandRunner'
J'ai aussi essayé tous les ci-dessus à l'aide de permutations require_relative. J'ai essayé de charger le fichier dans la cisr à l'intérieur d'emacs, et je l'ai essayé à la ligne de commande. À un point de l'irb, il serait de charger une fois avec
besoin d'un CommandRunner'
puis serait de charger jusqu'à ce que je l'ai mis pour revenir à". /CommandRunner " et puis il serait de charger une fois de plus.
En fait, j'ai eu l'erreur de dire
`require_relative': aucun fichier à charger -- /raid1/ruby-code/référence/CommandRunner (LoadError)
qui est le chemin d'accès correct au fichier!
Depuis, j'ai mis à charger et que semble de travailler, je vais voir le comportement bizarre, mais qui sera peut-être moi. Quelqu'un aurait-il une idée de ce qui allait se passer ici?
OriginalL'auteur asm | 2010-10-28
Vous devez vous connecter pour publier un commentaire.
Est le nom du fichier CommandRunner et pas CommandRunner.rb? La convention de nommage pour le rubis de fichiers est d'utiliser des minuscules et des caractères de soulignement, de sorte que même si le nom de la classe serait CommandRunner, le fichier serait command_runner.rb, puis d'exiger 'command_runner' devrait fonctionner.
Je ne trouve pas dans la documentation que ce n'est pas spécifiquement pris en charge. Si vous modifiez CommandRunner à CommandRunner.rb, ça va marcher, mais je pense que ça peut-être un bug dans la fonction eval.c qu'il n'est pas de trouver le fichier CommandRunner (et pire, vous indiquant que le fichier n'existe pas).
Ah, je crois que j'ai trouvé. À partir de ruby-doc.org/core/classes/Kernel.html#M005941 "... Sinon, Ruby essaie en ajoutant
.rb'',
.donc", et ainsi de suite pour le nom." Donc, ceci indique que si aucune prolongation n'est accordée, ruby va essayer d'ajouter les extensions valides, donc, ne pas avoir une extension est non spécifié. En d'autres termes, aucune extension n'est pas considéré comme valide si vous souhaitez qu'il.C'était en effet le problème. J'ai besoin de m'entraîner à aller à ruby-doc la façon que je vais à l'Hyperspec avec Lisp. Merci beaucoup!
OriginalL'auteur Ben Taitelbaum