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

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