Ruby требует ошибки «нет такого файла для загрузки», но ясно в пути - PullRequest
11 голосов
/ 28 октября 2010

Я пытался получить файл ruby, требующий другого файла ruby, и я чувствую, что схожу с ума. Моя установка выглядит следующим образом

Два файла в '/ raid1 / ruby-code / benchmark /'

CommandRunner
Benchmarker

Benchmarker является основной программой на данный момент и требует CommandRunner, я пробовал кучу разных вещей, и ни одна из них не работает. Ниже приведен список всех вещей, которые я поместил в начале Benchmarker

require 'CommandRunner'
require './CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME))
require 'CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME))
require './CommandRunner'

Я также попробовал все перечисленные выше перестановки, используя require_relative. Я попытался загрузить файл в irb внутри emacs, и я попробовал это в командной строке. В какой-то момент в irb он будет загружаться один раз с

require 'CommandRunner'
, а затем будет загружаться, пока я не переключу его обратно на «./CommandRunner», а затем он загрузится еще раз.

У меня действительно была ошибка, скажем

`require_relative': no such file to load -- 
/raid1/ruby-code/benchmark/CommandRunner (LoadError)

правильный путь к файлу!

С тех пор я переключил его на загрузку, и что , кажется, работает, я вижу странное поведение, но это может быть только я. Кто-нибудь знает, что здесь будет происходить?

1 Ответ

6 голосов
/ 28 октября 2010

Имя файла CommandRunner, а не CommandRunner.rb? Стандартное соглашение о присвоении имен для файлов ruby ​​состоит в использовании строчных и подчеркиваний, поэтому, хотя имя класса будет CommandRunner, файл будет command_runner.rb, а затем потребуется 'command_runner'.

...