简体   繁体   English

需要不使用ruby 2.0?

[英]require not working on ruby 2.0?

I'm doing a test with "require" under ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-darwin13.4.0] it doesn't work in many ways. 我正在使用ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-darwin13.4.0]下的“ require”进行测试,它在许多方面均无效。 There are two files in ruby directory as shown below: ruby目录中有两个文件,如下所示:

string_extensions.rb string_extensions.rb

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

vowels_test.rb vowels_test.rb

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

fire up IRB 启动IRB

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

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

I tried to change require 'string_extensions' to " require_relative 'string_extensions' ; require './string_extensions.rb' . They all didn't work. 我试图将require './string_extensions.rb'更改为“ require_relative 'string_extensions' ; require './string_extensions.rb' require_relative 'string_extensions' require './string_extensions.rb' 。它们都不起作用。

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

Your help will be greatly appreciated! 对你的帮助表示感谢!

You can use require_relative instead: 您可以改用require_relative

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

Or even require './string_extensions' . 甚至require './string_extensions'

Use: 采用:

ruby -I. vowels_test.rb

Automatic inclusion of the current directory in the load paths was removed in Ruby 2. 在Ruby 2中删除了在加载路径中自动包含当前目录的功能。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM