summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYuki Nishijima <yk.nishijima@gmail.com>2021-12-21 22:00:23 +0900
committerYuki Nishijima <yk.nishijima@gmail.com>2021-12-21 22:00:23 +0900
commit4560091b1c99ab33db0d653b9dd2d977fe4676d5 (patch)
treed939738b2ac1216dfd815c1c4e499d76d8e8c989 /lib
parenta6f76122a2395bd914daa0aa04fb5a6ce4e0c045 (diff)
* gems/default_gems: Make the SPELL_CHECKERS constant as compatible as possible
Diffstat (limited to 'lib')
-rw-r--r--lib/did_you_mean.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/did_you_mean.rb b/lib/did_you_mean.rb
index 0aef324059..9a77c8ebe7 100644
--- a/lib/did_you_mean.rb
+++ b/lib/did_you_mean.rb
@@ -114,8 +114,28 @@ module DidYouMean
correct_error NoMatchingPatternKeyError, PatternKeyNameChecker if defined?(::NoMatchingPatternKeyError)
# TODO: Remove on 3.3:
- SPELL_CHECKERS = @spell_checkers
+ 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