From ee518cf077b856fddea7dfae5d85f3c3117dd616 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 12 May 2020 16:22:41 +0900 Subject: [PATCH] Revert "Sync did_you_mean" This reverts commit 946dadd3f479198e87873a863d15c7660a8e2b56, which broke `TestGemRequire` and others. --- lib/did_you_mean.rb | 4 +-- .../spell_checkers/method_name_checker.rb | 7 +--- .../spell_checkers/require_path_checker.rb | 33 ------------------- .../spell_checking/test_method_name_check.rb | 7 ---- .../spell_checking/test_require_path_check.rb | 30 ----------------- test/did_you_mean/test_verbose_formatter.rb | 1 - 6 files changed, 2 insertions(+), 80 deletions(-) delete mode 100644 lib/did_you_mean/spell_checkers/require_path_checker.rb delete mode 100644 test/did_you_mean/spell_checking/test_require_path_check.rb diff --git a/lib/did_you_mean.rb b/lib/did_you_mean.rb index 2dbd2fb9f682f6..b8f92579ca38f2 100644 --- a/lib/did_you_mean.rb +++ b/lib/did_you_mean.rb @@ -6,7 +6,6 @@ require_relative 'did_you_mean/spell_checkers/method_name_checker' require_relative 'did_you_mean/spell_checkers/key_error_checker' require_relative 'did_you_mean/spell_checkers/null_checker' -require_relative 'did_you_mean/spell_checkers/require_path_checker' require_relative 'did_you_mean/formatters/plain_formatter' require_relative 'did_you_mean/tree_spell_checker' @@ -96,9 +95,8 @@ def self.correct_error(error_class, spell_checker) correct_error NameError, NameErrorCheckers correct_error KeyError, KeyErrorChecker correct_error NoMethodError, MethodNameChecker - correct_error LoadError, RequirePathChecker - # Returns the currently set formatter. By default, it is set to +DidYouMean::Formatter+. + # Returns the currenctly set formatter. By default, it is set to +DidYouMean::Formatter+. def self.formatter @@formatter end diff --git a/lib/did_you_mean/spell_checkers/method_name_checker.rb b/lib/did_you_mean/spell_checkers/method_name_checker.rb index 0483127d6f1f16..3a38245f0c2535 100644 --- a/lib/did_you_mean/spell_checkers/method_name_checker.rb +++ b/lib/did_you_mean/spell_checkers/method_name_checker.rb @@ -43,12 +43,7 @@ def initialize(exception) end def corrections - @corrections ||= begin - dictionary = method_names - dictionary = RB_RESERVED_WORDS + dictionary if @private_call - - SpellChecker.new(dictionary: dictionary).correct(method_name) - names_to_exclude - end + @corrections ||= SpellChecker.new(dictionary: RB_RESERVED_WORDS + method_names).correct(method_name) - names_to_exclude end def method_names diff --git a/lib/did_you_mean/spell_checkers/require_path_checker.rb b/lib/did_you_mean/spell_checkers/require_path_checker.rb deleted file mode 100644 index 10239947dd3b7c..00000000000000 --- a/lib/did_you_mean/spell_checkers/require_path_checker.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen-string-literal: true - -require_relative "../spell_checker" -require_relative "../tree_spell_checker" - -module DidYouMean - class RequirePathChecker - attr_reader :path - - INITIAL_LOAD_PATH = $LOAD_PATH.dup.freeze - ENV_SPECIFIC_EXT = ".#{RbConfig::CONFIG["DLEXT"]}" - - private_constant :INITIAL_LOAD_PATH, :ENV_SPECIFIC_EXT - - def self.requireables - @requireables ||= INITIAL_LOAD_PATH - .flat_map {|path| Dir.glob("**/???*{.rb,#{ENV_SPECIFIC_EXT}}", base: path) } - .map {|path| path.chomp!(".rb") || path.chomp!(ENV_SPECIFIC_EXT) } - end - - def initialize(exception) - @path = exception.path - end - - def corrections - threshold = path.size * 2 - dictionary = self.class.requireables.reject {|str| str.size >= threshold } - spell_checker = path.include?("/") ? TreeSpellChecker : SpellChecker - - spell_checker.new(dictionary: dictionary).correct(path) - end - end -end diff --git a/test/did_you_mean/spell_checking/test_method_name_check.rb b/test/did_you_mean/spell_checking/test_method_name_check.rb index 6e14e6acc4c778..f3a6b1c7c7a692 100644 --- a/test/did_you_mean/spell_checking/test_method_name_check.rb +++ b/test/did_you_mean/spell_checking/test_method_name_check.rb @@ -137,11 +137,4 @@ def test_suggests_yield assert_correction :yield, error.corrections assert_match "Did you mean? yield", error.to_s end - - def test_does_not_suggest_yield - error = assert_raise(NoMethodError) { 1.yeild } - - assert_correction [], error.corrections - assert_not_match(/Did you mean\? +yield/, error.to_s) - end if RUBY_ENGINE != "jruby" end diff --git a/test/did_you_mean/spell_checking/test_require_path_check.rb b/test/did_you_mean/spell_checking/test_require_path_check.rb deleted file mode 100644 index 8c4da6efbe41d6..00000000000000 --- a/test/did_you_mean/spell_checking/test_require_path_check.rb +++ /dev/null @@ -1,30 +0,0 @@ -require_relative '../helper' - -class RequirePathCheckTest < Test::Unit::TestCase - include DidYouMean::TestHelper - - def test_load_error_from_require_has_suggestions - error = assert_raise LoadError do - require 'open_struct' - end - - assert_correction 'ostruct', error.corrections - assert_match "Did you mean? ostruct", error.to_s - end - - def test_load_error_from_require_for_nested_files_has_suggestions - error = assert_raise LoadError do - require 'net/htt' - end - - assert_correction 'net/http', error.corrections - assert_match "Did you mean? net/http", error.to_s - - error = assert_raise LoadError do - require 'net-http' - end - - assert_correction ['net/http', 'net/https'], error.corrections - assert_match "Did you mean? net/http", error.to_s - end -end diff --git a/test/did_you_mean/test_verbose_formatter.rb b/test/did_you_mean/test_verbose_formatter.rb index d8f2f462736c09..92ea9a1c161199 100644 --- a/test/did_you_mean/test_verbose_formatter.rb +++ b/test/did_you_mean/test_verbose_formatter.rb @@ -3,7 +3,6 @@ class VerboseFormatterTest < Test::Unit::TestCase def setup require_relative File.join(DidYouMean::TestHelper.root, 'verbose') - DidYouMean.formatter = DidYouMean::VerboseFormatter.new end