[ruby/irb] Show lib name first because it's the most common use case

https://github.com/ruby/irb/commit/74d635758b
This commit is contained in:
aycabta 2021-09-08 05:07:24 +09:00 коммит произвёл git
Родитель c5e8088c7e
Коммит bc24af0f35
2 изменённых файлов: 12 добавлений и 4 удалений

Просмотреть файл

@ -64,15 +64,18 @@ module IRB
end
def self.retrieve_files_to_require_from_load_path
@@files_from_load_path ||= retrieve_gem_and_system_load_path.flat_map { |path|
@@files_from_load_path ||= retrieve_gem_and_system_load_path.map { |path|
begin
Dir.glob("**/*.{rb,#{RbConfig::CONFIG['DLEXT']}}", base: path)
rescue Errno::ENOENT
[]
end
}.uniq.map { |path|
path.sub(/\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/, '')
}
}.inject([]) { |result, names|
shortest, *rest = names.map{ |n| n.sub(/\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/, '') }.sort
result.unshift(shortest) if shortest
result.concat(rest)
result
}.uniq
end
def self.retrieve_files_to_require_relative_from_current_dir

Просмотреть файл

@ -68,6 +68,11 @@ module TestIRB
end
end
def test_complete_require_library_name_first
candidates = IRB::InputCompletor::CompletionProc.("'cgi", "require ", "")
assert_equal candidates.first, "'cgi"
end
def test_complete_require_relative
candidates = Dir.chdir(__dir__ + "/../..") do
IRB::InputCompletor::CompletionProc.("'lib/irb", "require_relative ", "")