Sha256: c4cfefa14e06c72089f877b32b2bd4605ca978738f4d1f6653dd239a6de89dc0

Contents?: true

Size: 672 Bytes

Versions: 1

Compression:

Stored size: 672 Bytes

Contents

# -*- frozen-string-literal: true -*-

module DidYouMean
  class VariableNameChecker
    include SpellCheckable
    attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names

    def initialize(exception)
      @name       = exception.name.to_s.tr("@", "")
      @lvar_names = exception.frame_binding.local_variables
      receiver    = exception.frame_binding.receiver

      @method_names = receiver.methods + receiver.private_methods
      @cvar_names   = receiver.class.class_variables
      @ivar_names   = receiver.instance_variables
    end

    def candidates
      { name => (lvar_names + method_names + ivar_names + cvar_names) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
did_you_mean-1.0.0.beta3 lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb