summaryrefslogtreecommitdiff
path: root/lib/did_you_mean/experimental/initializer_name_correction.rb
blob: b59c98e774e2424eee10c723c47f807b9b9ebae6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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