summaryrefslogtreecommitdiff
path: root/lib/did_you_mean/experimental/initializer_name_correction.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/did_you_mean/experimental/initializer_name_correction.rb')
-rw-r--r--lib/did_you_mean/experimental/initializer_name_correction.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/did_you_mean/experimental/initializer_name_correction.rb b/lib/did_you_mean/experimental/initializer_name_correction.rb
new file mode 100644
index 0000000000..b59c98e774
--- /dev/null
+++ b/lib/did_you_mean/experimental/initializer_name_correction.rb
@@ -0,0 +1,20 @@
+# frozen-string-literal: true
+
+require_relative '../levenshtein'
+
+module DidYouMean
+ module Experimental
+ module InitializerNameCorrection
+ def method_added(name)
+ super
+
+ distance = Levenshtein.distance(name.to_s, 'initialize')
+ if distance != 0 && distance <= 2
+ warn "warning: #{name} might be misspelled, perhaps you meant initialize?"
+ end
+ end
+ end
+
+ ::Class.prepend(InitializerNameCorrection)
+ end
+end