[前][次][番号順一覧][スレッド一覧]

ruby-changes:70423

From: Yuki <ko1@a...>
Date: Tue, 21 Dec 2021 22:10:54 +0900 (JST)
Subject: [ruby-changes:70423] cdb7d699d0 (master): Revert commits for did_you_mean

https://git.ruby-lang.org/ruby.git/commit/?id=cdb7d699d0

From cdb7d699d0641e8f081d590d06d07887ac09961f Mon Sep 17 00:00:00 2001
From: Yuki Nishijima <yk.nishijima@g...>
Date: Tue, 21 Dec 2021 22:09:33 +0900
Subject: Revert commits for did_you_mean

This reverts commit 4560091b1c99ab33db0d653b9dd2d977fe4676d5.
This reverts commit a6f76122a2395bd914daa0aa04fb5a6ce4e0c045.
This reverts commit e59b18a6379c55f15ccda85c27d6997d44ef5293.
This reverts commit 505dfae05d56d844ea150676edb87850a406d071.
---
 NEWS.md                                            |   2 +-
 lib/did_you_mean.rb                                |  53 ++---------
 lib/did_you_mean/core_ext/name_error.rb            |   2 +-
 lib/did_you_mean/formatter.rb                      |   2 +-
 .../spell_checkers/method_name_checker.rb          |   3 -
 .../name_error_checkers/variable_name_checker.rb   |   3 -
 .../spell_checkers/require_path_checker.rb         |   5 +-
 lib/did_you_mean/version.rb                        |   2 +-
 .../core_ext/test_name_error_extension.rb          |   7 +-
 test/did_you_mean/helper.rb                        |   4 -
 test/did_you_mean/test_ractor_compatibility.rb     | 102 ---------------------
 11 files changed, 14 insertions(+), 171 deletions(-)
 delete mode 100644 test/did_you_mean/test_ractor_compatibility.rb

diff --git a/NEWS.md b/NEWS.md
index df74ac7d60a..161ad4713d6 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -315,7 +315,7 @@ Note: We're only listing outstanding class updates. https://github.com/ruby/ruby/blob/trunk/NEWS.md#L315
     * cgi 0.3.1
     * csv 3.2.1
     * date 3.2.2
-    * did_you_mean 1.6.0
+    * did_you_mean 1.6.0.pre.alpha
     * digest 3.1.0.pre3
     * drb 2.1.0
     * erb 2.2.3
diff --git a/lib/did_you_mean.rb b/lib/did_you_mean.rb
index 9a77c8ebe7d..6d3a6e8bdab 100644
--- a/lib/did_you_mean.rb
+++ b/lib/did_you_mean.rb
@@ -86,24 +86,11 @@ require_relative 'did_you_mean/tree_spell_checker' https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean.rb#L86
 #
 module DidYouMean
   # Map of error types and spell checker objects.
-  @spell_checkers = Hash.new(NullChecker)
-
-  # Returns a sharable hash map of error types and spell checker objects.
-  def self.spell_checkers
-    @spell_checkers
-  end
+  SPELL_CHECKERS = Hash.new(NullChecker)
 
   # Adds +DidYouMean+ functionality to an error using a given spell checker
   def self.correct_error(error_class, spell_checker)
-    if defined?(Ractor)
-      new_mapping = { **@spell_checkers, error_class.name => spell_checker }
-      new_mapping.default = NullChecker
-
-      @spell_checkers = Ractor.make_shareable(new_mapping)
-    else
-      spell_checkers[error_class.name] = spell_checker
-    end
-
+    SPELL_CHECKERS[error_class.name] = spell_checker
     error_class.prepend(Correctable) unless error_class < Correctable
   end
 
@@ -113,43 +100,15 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean.rb#L100
   correct_error LoadError, RequirePathChecker if RUBY_VERSION >= '2.8.0'
   correct_error NoMatchingPatternKeyError, PatternKeyNameChecker if defined?(::NoMatchingPatternKeyError)
 
-  # TODO: Remove on 3.3:
-  class DeprecatedMapping # :nodoc:
-    def []=(key, value)
-      warn "Calling `DidYouMean::SPELL_CHECKERS[#{key.to_s}] = #{value.to_s}' has been deprecated. " \
-           "Please call `DidYouMean.correct_error(#{key.to_s}, #{value.to_s})' instead."
-
-      DidYouMean.correct_error(key, value)
-    end
-
-    def merge!(hash)
-      warn "Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. " \
-           "Please call `DidYouMean.correct_error(error_name, spell_checker)' instead."
-
-      hash.each do |error_class, spell_checker|
-        DidYouMean.correct_error(error_class, spell_checker)
-      end
-    end
-  end
-
-  # TODO: Remove on 3.3:
-  SPELL_CHECKERS = DeprecatedMapping.new
-  deprecate_constant :SPELL_CHECKERS
-  private_constant :DeprecatedMapping
-
   # Returns the currently set formatter. By default, it is set to +DidYouMean::Formatter+.
   def self.formatter
-    if defined?(Reactor)
-      Ractor.current[:__did_you_mean_formatter__] || Formatter
-    else
-      Formatter
-    end
+    @formatter
   end
 
   # Updates the primary formatter used to format the suggestions.
   def self.formatter=(formatter)
-    if defined?(Reactor)
-      Ractor.current[:__did_you_mean_formatter__] = formatter
-    end
+    @formatter = formatter
   end
+
+  @formatter = Formatter.new
 end
diff --git a/lib/did_you_mean/core_ext/name_error.rb b/lib/did_you_mean/core_ext/name_error.rb
index eb3ef117a04..7e99282b41d 100644
--- a/lib/did_you_mean/core_ext/name_error.rb
+++ b/lib/did_you_mean/core_ext/name_error.rb
@@ -26,7 +26,7 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/core_ext/name_error.rb#L26
     end
 
     def spell_checker
-      DidYouMean.spell_checkers[self.class.to_s].new(self)
+      SPELL_CHECKERS[self.class.to_s].new(self)
     end
   end
 end
diff --git a/lib/did_you_mean/formatter.rb b/lib/did_you_mean/formatter.rb
index 02c0bc75d33..01eb59100ac 100644
--- a/lib/did_you_mean/formatter.rb
+++ b/lib/did_you_mean/formatter.rb
@@ -26,7 +26,7 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/formatter.rb#L26
     #
     #   # => nil
     #
-    def self.message_for(corrections)
+    def message_for(corrections)
       corrections.empty? ? "" : "\nDid you mean?  #{corrections.join("\n               ")}"
     end
   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 d8ebaa46168..0483127d6f1 100644
--- a/lib/did_you_mean/spell_checkers/method_name_checker.rb
+++ b/lib/did_you_mean/spell_checkers/method_name_checker.rb
@@ -6,7 +6,6 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/spell_checkers/method_name_checker.rb#L6
 
     NAMES_TO_EXCLUDE = { NilClass => nil.methods }
     NAMES_TO_EXCLUDE.default = []
-    Ractor.make_shareable(NAMES_TO_EXCLUDE) if defined?(Ractor)
 
     # +MethodNameChecker::RB_RESERVED_WORDS+ is the list of reserved words in
     # Ruby that take an argument. Unlike
@@ -37,8 +36,6 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/spell_checkers/method_name_checker.rb#L36
       yield
     )
 
-    Ractor.make_shareable(RB_RESERVED_WORDS) if defined?(Ractor)
-
     def initialize(exception)
       @method_name  = exception.name
       @receiver     = exception.receiver
diff --git a/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb b/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
index 36d00349c67..3e51b4fa3ae 100644
--- a/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
+++ b/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
@@ -8,7 +8,6 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb#L8
 
     NAMES_TO_EXCLUDE = { 'foo' => [:fork, :for] }
     NAMES_TO_EXCLUDE.default = []
-    Ractor.make_shareable(NAMES_TO_EXCLUDE) if defined?(Ractor)
 
     # +VariableNameChecker::RB_RESERVED_WORDS+ is the list of all reserved
     # words in Ruby. They could be declared like methods are, and a typo would
@@ -63,8 +62,6 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb#L62
       __ENCODING__
     )
 
-    Ractor.make_shareable(RB_RESERVED_WORDS) if defined?(Ractor)
-
     def initialize(exception)
       @name       = exception.name.to_s.tr("@", "")
       @lvar_names = exception.respond_to?(:local_variables) ? exception.local_variables : []
diff --git a/lib/did_you_mean/spell_checkers/require_path_checker.rb b/lib/did_you_mean/spell_checkers/require_path_checker.rb
index 586ced37de2..e4cdb9f43d4 100644
--- a/lib/did_you_mean/spell_checkers/require_path_checker.rb
+++ b/lib/did_you_mean/spell_checkers/require_path_checker.rb
@@ -9,10 +9,7 @@ module DidYouMean https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/spell_checkers/require_path_checker.rb#L9
     attr_reader :path
 
     INITIAL_LOAD_PATH = $LOAD_PATH.dup.freeze
-    Ractor.make_shareable(INITIAL_LOAD_PATH) if defined?(Ractor)
-
-    ENV_SPECIFIC_EXT = ".#{RbConfig::CONFIG["DLEXT"]}"
-    Ractor.make_shareable(ENV_SPECIFIC_EXT) if defined?(Ractor)
+    ENV_SPECIFIC_EXT  = ".#{RbConfig::CONFIG["DLEXT"]}"
 
     private_constant :INITIAL_LOAD_PATH, :ENV_SPECIFIC_EXT
 
diff --git a/lib/did_you_mean/version.rb b/lib/did_you_mean/version.rb
index bf8f795f103..8df73e1d623 100644
--- a/lib/did_you_mean/version.rb
+++ b/lib/did_you_mean/version.rb
@@ -1,3 +1,3 @@ https://github.com/ruby/ruby/blob/trunk/lib/did_you_mean/version.rb#L1
 module DidYouMean
-  VERSION = "1.6.0".freeze
+  VERSION = "1.6.0-alpha"
 end
diff --git a/test/did_you_mean/core_ext/test_name_error_extension.rb b/test/did_you_mean/core_ext/test_name_error_extension.rb
index 91871cda9a7..9dc08dbde3d 100644
--- a/test/did_you_mean/core_ext/test_name_error_extension.rb
+++ b/test/did_you_mean/core_ext/test_name_error_extension.rb
@@ -1,7 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/test/did_you_mean/core_ext/test_name_error_extension.rb#L1
 require_relative '../helper'
 
 class NameErrorExtensionTest < Test::Unit::TestCase
-  SPELL_CHECKERS = DidYouMean.spell_checkers
+  SPELL_CHECKERS = DidYouMean::SPELL_CHECKERS
 
   class TestSpellChecker
     def initialize(*); end
@@ -9,14 +9,13 @@ class NameErrorExtensionTest < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/did_you_mean/core_ext/test_name_error_extension.rb#L9
   end
 
   def setup
-    @original_spell_checker = DidYouMean.spell_checkers['NameError']
-    DidYouMean.correct_error(NameError, TestSpellChecker)
+    @org, SPELL_CHECKERS['NameError'] = SPELL_CHECKERS['NameError'], TestSpellChecker
 
     @error = assert_raise(Name (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]