Neither ruby and nor irb can load .rb file in current directory
Solution 1
None of these worked for me, but this did:
irb -I .
>require 'file'
=> true
Solution 2
require './hede'
or
require_relative 'hede'
This works for me in both Ruby (1.9.3) and JRuby (1.7.x) on linux. I haven't tested it on windows.
Solution 3
How about this command? A little cumbersome to write but really clean and it should always work:
➜ $ irb > require "#{Dir.pwd}/file_to_load.rb" => true
Solution 4
Noticed the same behavior but my linux roots had me try:.\file.rb
and it loaded into the irb. Try explicitly declaring the current directory.
Solution 5
it's damn dirty, but you can always do at the very first line:
$: << '.'
and off you go with pwd'ed require. It's quite useful for interactive/creative testing with IRB
Bad Request
Updated on June 13, 2022Comments
-
Bad Request almost 2 years
I'm having a really noob problem with importing files in Ruby. I'm making a Ruby app in Windows XP. All the class files for the app are in
"C:/Documents/Prgm/Surveyor_Ruby/lib"
. But when Irequire
a file in another file, neither ruby nor irb can find the required file.The current directory's contents:
C:\Documents\Prgm\Surveyor_Ruby\lib>dir Volume in drive C has no label. Volume Serial Number is AAAA-BBBB Directory of C:\Documents\Prgm\Surveyor_Ruby\lib 10/09/2010 06:32 PM <DIR> . 10/09/2010 06:32 PM <DIR> .. 10/08/2010 03:22 PM 5,462 main (commented).rb 10/08/2010 03:41 PM 92 question.rb 10/08/2010 09:06 PM 2,809 survey.rb 10/09/2010 06:25 PM 661 surveyor.rb 10/08/2010 01:39 PM 1,546 test.rb 5 File(s) 10,570 bytes 2 Dir(s) 40,255,045,632 bytes free
Confirmation that irb is in correct directory:
C:\Documents\Prgm\Surveyor_Ruby\lib>irb irb(main):001:0> Dir.pwd => "C:/Documents/Prgm/Surveyor_Ruby/lib"
...yet irb can't load survey.rb:
irb(main):002:0> require 'survey' LoadError: no such file to load -- survey from <internal:lib/rubygems/custom_require>:29:in `require' from <internal:lib/rubygems/custom_require>:29:in `require' from (irb):2 from C:/Ruby192/bin/irb:12:in `<main>'
-
Jörg W Mittag about 13 yearsThis only works if the current directory happens to be the one that both the files are in.
-
Darme over 11 yearsCheck also my solution, it's especially fine when you didn't fire up irb with
-I .
to set thepwd
as the$LOAD_PATH
directory. -
John Hinnegan almost 11 yearsThanks for this. I have no idea why require wasn't working for me.
-
Dan over 10 yearsWonderful feature of
irb
! -
Pramod about 8 years@DanKozlowski More like, bad design of Ruby! In Python, the current directory is added to PATH by default.