From c3af0e5d95ae7e5545f06e8d0b5ac1172f8a794a Mon Sep 17 00:00:00 2001 From: Karol Topolski Date: Sat, 9 Dec 2023 13:33:36 +0000 Subject: [PATCH 1/3] Allow "project level" .irbrc to override previous definitions of .irbrc --- lib/irb/init.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/irb/init.rb b/lib/irb/init.rb index b69f68d53..64420a1b5 100644 --- a/lib/irb/init.rb +++ b/lib/irb/init.rb @@ -410,7 +410,6 @@ def IRB.rc_file(ext = IRBRC_EXT) @CONF[:RC_NAME_GENERATOR] ||= rcgen if File.exist?(rcgen.call(IRBRC_EXT)) @CONF[:RC_NAME_GENERATOR] = rcgen - break end end end From b2c12f8774f9858491c62f897247748f934630e4 Mon Sep 17 00:00:00 2001 From: Karol Topolski Date: Sat, 9 Dec 2023 15:17:30 +0000 Subject: [PATCH 2/3] Add test ensuring .irbrc loading order --- test/irb/test_init.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/irb/test_init.rb b/test/irb/test_init.rb index b6a8f5529..fd9e0671d 100644 --- a/test/irb/test_init.rb +++ b/test/irb/test_init.rb @@ -50,6 +50,27 @@ def test_rc_file end end + def test_rc_file_loading_order + tmpdir = @tmpdir + Dir.chdir(tmpdir) do + # tmpdir is ENV["HOME"], so another dir is needed + subdir = "#{tmpdir}/mydir" + FileUtils.mkdir_p("#{tmpdir}/mydir") + Dir.chdir(subdir) do + ENV["XDG_CONFIG_HOME"] = "#{tmpdir}/xdg" + FileUtils.mkdir_p("#{tmpdir}/xdg/irb") + FileUtils.touch("#{tmpdir}/xdg/irb"+"/.irb#{IRB::IRBRC_EXT}") + # ENV["HOME"] .irbrc + FileUtils.touch(tmpdir+"/.irb#{IRB::IRBRC_EXT}") + # project level .irbrc + FileUtils.touch(subdir+"/.irb#{IRB::IRBRC_EXT}") + IRB.conf[:RC_NAME_GENERATOR] = nil + assert_equal(subdir+"/.irb#{IRB::IRBRC_EXT}", IRB.rc_file) + assert_equal(subdir+"/.irb_history", IRB.rc_file("_history")) + end + end + end + def test_rc_file_in_subdir tmpdir = @tmpdir Dir.chdir(tmpdir) do From a0a2c500ba95add68ef30dee742454b419964953 Mon Sep 17 00:00:00 2001 From: Karol Topolski Date: Mon, 11 Dec 2023 17:20:05 +0000 Subject: [PATCH 3/3] Rename subdir to project_dir --- test/irb/test_init.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/irb/test_init.rb b/test/irb/test_init.rb index fd9e0671d..b5a195c97 100644 --- a/test/irb/test_init.rb +++ b/test/irb/test_init.rb @@ -54,19 +54,19 @@ def test_rc_file_loading_order tmpdir = @tmpdir Dir.chdir(tmpdir) do # tmpdir is ENV["HOME"], so another dir is needed - subdir = "#{tmpdir}/mydir" - FileUtils.mkdir_p("#{tmpdir}/mydir") - Dir.chdir(subdir) do + project_dir = "#{tmpdir}/project" + FileUtils.mkdir_p(project_dir) + Dir.chdir(project_dir) do ENV["XDG_CONFIG_HOME"] = "#{tmpdir}/xdg" FileUtils.mkdir_p("#{tmpdir}/xdg/irb") FileUtils.touch("#{tmpdir}/xdg/irb"+"/.irb#{IRB::IRBRC_EXT}") # ENV["HOME"] .irbrc FileUtils.touch(tmpdir+"/.irb#{IRB::IRBRC_EXT}") # project level .irbrc - FileUtils.touch(subdir+"/.irb#{IRB::IRBRC_EXT}") + FileUtils.touch(project_dir+"/.irb#{IRB::IRBRC_EXT}") IRB.conf[:RC_NAME_GENERATOR] = nil - assert_equal(subdir+"/.irb#{IRB::IRBRC_EXT}", IRB.rc_file) - assert_equal(subdir+"/.irb_history", IRB.rc_file("_history")) + assert_equal(project_dir+"/.irb#{IRB::IRBRC_EXT}", IRB.rc_file) + assert_equal(project_dir+"/.irb_history", IRB.rc_file("_history")) end end end