Spec-Zone.ru › Ruby 3.4
  1. DidYouMean::
  2. VariableNameChecker

класс DidYouMean::VariableNameChecker

Родительский класс:
Object

Константы

NAMES_TO_EXCLUDE
RB_RESERVED_WORDS

VariableNameChecker::RB_RESERVED_WORDS — список всех зарезервированных слов в Ruby. Их можно объявлять так же, как методы, и опечатка приведёт к тому, что Ruby вызовет NameError из-за способа их объявления.

:VariableNameChecker будет использовать этот список, чтобы предложить зарезервированное слово, если будет вызвано NameError и найдены наиболее подходящие совпадения, за исключением:

* +do+
* +if+
* +in+
* +or+

См. также MethodNameChecker::RB_RESERVED_WORDS.

Атрибуты

cvar_names [R]
ivar_names [R]
lvar_names [R]
method_names [R]
name [R]

Открытые методы класса

new (exception) Показать исходный код
# File lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb, line 68
def initialize(exception)
  @name       = exception.name.to_s.tr("@", "")
  @lvar_names = exception.respond_to?(:local_variables) ? exception.local_variables : []
  receiver    = exception.receiver

  @method_names = receiver.methods + receiver.private_methods
  @ivar_names   = receiver.instance_variables
  @cvar_names   = receiver.class.class_variables
  @cvar_names  += receiver.class_variables if receiver.kind_of?(Module)
end

Открытые методы экземпляра

corrections () Показать исходный код
# File lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb, line 79
def corrections
  @corrections ||= SpellChecker
                 .new(dictionary: (RB_RESERVED_WORDS + lvar_names + method_names + ivar_names + cvar_names))
                 .correct(name).uniq - NAMES_TO_EXCLUDE[@name]
end

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API