在IRB Ruby中加载文档

6
我想要把一个文件加载到IRB中。我已经在桌面上保存了一个名为“Ruby.rb”的文件。 如何将该文件加载到IRB中?
我尝试过使用'load "Ruby.rb"', 'load "Ruby"'和'require "Ruby.rb"。这些文件都在我的桌面上,这里是否需要指定路径? 文档的路径是C:\Users\Jamal\desktop,我需要将其包含在load "Ruby.rb"命令中吗? 谢谢。
1个回答

9
这取决于您使用的Ruby版本(1.8.x或1.9.x)。loadrequire都适用于Ruby的加载路径。您可以通过在IRB中评估$:来查看它。在Ruby 1.9.x中,当前目录不是加载路径的一部分,因此您必须使用文件的绝对路径。根据您使用的操作系统(Windows 7),这可能看起来像:
c:\Users\mliebelt\Desktop>irb
irb(main):001:0> $:
=> ["C:/apps/ruby/ruby192/lib/ruby/site_ruby/1.9.1", "C:/apps/ruby/ruby192/lib/ruby/site_ruby/1.9.1/i386-msvcrt", "C:/apps/ruby/ruby192/lib/ruby/site_ruby", "C:/apps/ruby/ruby192/lib/ruby/vendor_ruby/1.9.1", "C:/apps/ruby/ruby192/lib/ruby/vendor_ruby/1.9.1/i386-msvcrt", "C:/apps/ruby/ruby192/lib/ruby/vendor_ruby", "C:/apps/ruby/ruby192/lib/ruby/1.9.1", "C:/apps/ruby/ruby192/lib/ruby/1.9.1/i386-mingw32"]
irb(main):002:0> require 'c:/Users/mliebelt/Desktop/ruby'
File c:/Users/mliebelt/Desktop/ruby.rb loaded.
=> true
irb(main):003:0> load 'c:/Users/mliebelt/Desktop/ruby.rb'
File c:/Users/mliebelt/Desktop/ruby.rb loaded.
=> true

顺便提一下,文件ruby.rb的内容如下:
puts "File #{__FILE__} loaded."

在 Ruby 1.8.x 上使用 IRB 的会话可能如下所示:

c:\Users\mliebelt\Desktop>irb
irb(main):001:0> $:
=> ["C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/site_ruby/1.8", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/site_ruby/1.8/i386-msvcrt", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/site_ruby", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/vendor_ruby/1.8", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/vendor_ruby/1.8/i386-msvcrt", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/vendor_ruby", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/1.8", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/1.8/i386-mingw32", "."]
irb(main):002:0> require 'ruby'
File ./ruby.rb loaded.
=> true
irb(main):003:0> load 'ruby.rb'
File ./ruby.rb loaded.
=> true
requireload之间的区别如下:
  • require不需要文件的后缀名(.rb)。
    • require 'ruby'require 'ruby.rb' 是相同的。
  • require只会将文件读入内存一次,因此通常应该使用require而不是load,后者在每次调用文件中的函数时都会将文件读入内存。
为了加载文件(使用requireload),请按照以下步骤操作: - 根据需要扩展您的加载路径以包括当前目录。有关详细信息,请参见添加目录到加载路径中。 - (当使用Ruby 1.8.x时)在要加载或要求文件的目录中启动程序(或IRB)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接