From c8ce37d4271a58132fb7fc5548e0ba7d85419152 Mon Sep 17 00:00:00 2001 From: aycabta Date: Mon, 28 Oct 2019 01:44:09 +0900 Subject: [PATCH] [ruby/rdoc] Support different drive latters in include paths https://github.com/ruby/rdoc/commit/946d2592e2 --- lib/rdoc/options.rb | 21 ++++++++++++++++++--- test/rdoc/test_rdoc_options.rb | 10 ++++++++-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/rdoc/options.rb b/lib/rdoc/options.rb index 53cc3af63c..43494c85be 100644 --- a/lib/rdoc/options.rb +++ b/lib/rdoc/options.rb @@ -555,7 +555,13 @@ class RDoc::Options @files << @page_dir.to_s - page_dir = @page_dir.expand_path.relative_path_from @root + page_dir = nil + begin + page_dir = @page_dir.expand_path.relative_path_from @root + rescue ArgumentError + # On Windows, sometimes crosses different drive letters. + page_dir = @page_dir.expand_path + end @page_dir = page_dir end @@ -1154,8 +1160,17 @@ Usage: #{opt.program_name} [options] [names...] path.reject do |item| path = Pathname.new(item).expand_path - relative = path.relative_path_from(dot).to_s - relative.start_with? '..' + is_reject = nil + relative = nil + begin + relative = path.relative_path_from(dot).to_s + rescue ArgumentError + # On Windows, sometimes crosses different drive letters. + is_reject = true + else + is_reject = relative.start_with? '..' + end + is_reject end end diff --git a/test/rdoc/test_rdoc_options.rb b/test/rdoc/test_rdoc_options.rb index bc0fc8bcf1..140c4afc9b 100644 --- a/test/rdoc/test_rdoc_options.rb +++ b/test/rdoc/test_rdoc_options.rb @@ -507,8 +507,14 @@ rdoc_include: assert_empty out assert_empty err - expected = - Pathname(Dir.tmpdir).expand_path.relative_path_from @options.root + expected = nil + begin + expected = + Pathname(Dir.tmpdir).expand_path.relative_path_from @options.root + rescue ArgumentError + # On Windows, sometimes crosses different drive letters. + expected = Pathname(Dir.tmpdir).expand_path + end assert_equal expected, @options.page_dir assert_equal [Dir.tmpdir], @options.files