不需要在 ruby 2.0 上工作?

require not working on ruby 2.0?

我正在 ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-darwin13.4.0] 下使用 "require" 进行测试,它在很多方面都不起作用。 ruby目录下有两个文件如下图:

string_extensions.rb

class String
         def vowels
           self.scan(/[aeiou]/i)
         end
end

vowels_test.rb

require 'string_extensions'
   puts "This is a test".vowels.join('-')

启动 IRB

Snailwalkers-MacBook-Pro:ruby snailwalker$  ruby vowels_test.rb

returs : `require': cannot load such file -- string_extensions (LoadError)

我尝试将 require 'string_extensions' 更改为 " require_relative 'string_extensions' ; require './string_extensions.rb' 。他们都没有用。

两者都 return 错误:vowels_test.rb:1:in require_relative': /Users/snailwalker/Ruby/string_extensions.rb:1: class/module name must be CONSTANT (SyntaxError)

非常感谢您的帮助!

使用:

ruby -I. vowels_test.rb

在 Ruby 2.

中删除了在加载路径中自动包含当前目录

您可以使用 require_relative 代替:

require_relative 'string_extensions'
puts "This is a test".vowels.join('-')

甚至require './string_extensions'.