Sha256: 559558e632c61f6d01ddabd443ab4c78db5432f117b50f7c784af9273a3c80a2

Contents?: true

Size: 748 Bytes

Versions: 4

Compression:

Stored size: 748 Bytes

Contents

module DidYouMean
  class MethodNameChecker
    attr_reader :method_name, :receiver

    NAMES_TO_EXCLUDE = { NilClass => nil.methods }
    NAMES_TO_EXCLUDE.default = []

    def initialize(exception)
      @method_name  = exception.name
      @receiver     = exception.receiver
      @private_call = exception.respond_to?(:private_call?) ? exception.private_call? : false
    end

    def corrections
      @corrections ||= SpellChecker.new(dictionary: method_names).correct(method_name) - NAMES_TO_EXCLUDE[@receiver.class]
    end

    def method_names
      method_names = receiver.methods + receiver.singleton_methods
      method_names += receiver.private_methods if @private_call
      method_names.uniq!
      method_names
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
did_you_mean-1.1.3 lib/did_you_mean/spell_checkers/method_name_checker.rb
did_you_mean-1.1.2 lib/did_you_mean/spell_checkers/method_name_checker.rb
ruby-compiler-0.1.1 vendor/ruby/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
did_you_mean-1.1.0 lib/did_you_mean/spell_checkers/method_name_checker.rb