11

我一直在尝试获取一个 ruby​​ 文件来要求另一个 ruby​​ 文件,我觉得我快疯了。我的设置如下

'/raid1/ruby-code/benchmark/' 中的两个文件

CommandRunner
基准测试

Benchmarker 是此时的主要程序,并且想要使用 CommandRunner,我尝试了很多不同的东西,但都没有工作。以下是我在 Benchmarker 开头放置的所有内容的列表

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

我还使用 require_relative 尝试了上述所有排列。我已经尝试将文件加载到 emacs 内部的 irb 中,并且我已经在命令行中尝试过。在 irb 的某一时刻,它会加载一次

需要'CommandRunner'
然后会加载,直到我将它切换回'./CommandRunner',然后它会再次加载。

我实际上有错误说

`require_relative': 没有要加载的文件 --
/raid1/ruby-code/benchmark/CommandRunner (LoadError)

这是文件的正确路径!

我已经将它切换为加载,这似乎正在工作,我看到了奇怪的行为,但这可能就是我。有谁知道这里会发生什么?

4

1 回答 1

6

文件名是 CommandRunner 而不是 CommandRunner.rb?ruby 文件的标准命名约定是使用小写和下划线,因此即使类名是 CommandRunner,文件也是 command_runner.rb,然后 require 'command_runner' 应该可以工作。

于 2010-10-28T00:34:02.683 回答