summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/irb/init.rb6
-rw-r--r--test/irb/test_init.rb3
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/irb/init.rb b/lib/irb/init.rb
index 11d10c5bab..5409528fae 100644
--- a/lib/irb/init.rb
+++ b/lib/irb/init.rb
@@ -379,11 +379,9 @@ module IRB # :nodoc:
end
if xdg_config_home = ENV["XDG_CONFIG_HOME"]
irb_home = File.join(xdg_config_home, "irb")
- unless File.exist? irb_home
- require 'fileutils'
- FileUtils.mkdir_p irb_home
+ if File.directory?(irb_home)
+ yield proc{|rc| irb_home + "/irb#{rc}"}
end
- yield proc{|rc| irb_home + "/irb#{rc}"}
end
if home = ENV["HOME"]
yield proc{|rc| home+"/.irb#{rc}"}
diff --git a/test/irb/test_init.rb b/test/irb/test_init.rb
index 074aae4070..39c5cfa8a0 100644
--- a/test/irb/test_init.rb
+++ b/test/irb/test_init.rb
@@ -36,13 +36,16 @@ module TestIRB
def test_rc_file
tmpdir = @tmpdir
Dir.chdir(tmpdir) do
+ ENV["XDG_CONFIG_HOME"] = "#{tmpdir}/xdg"
IRB.conf[:RC_NAME_GENERATOR] = nil
assert_equal(tmpdir+"/.irb#{IRB::IRBRC_EXT}", IRB.rc_file)
assert_equal(tmpdir+"/.irb_history", IRB.rc_file("_history"))
+ assert_file.not_exist?(tmpdir+"/xdg")
IRB.conf[:RC_NAME_GENERATOR] = nil
FileUtils.touch(tmpdir+"/.irb#{IRB::IRBRC_EXT}")
assert_equal(tmpdir+"/.irb#{IRB::IRBRC_EXT}", IRB.rc_file)
assert_equal(tmpdir+"/.irb_history", IRB.rc_file("_history"))
+ assert_file.not_exist?(tmpdir+"/xdg")
end
end