В Ruby почему псевдониму `method_missing` недостаточно перехватывать вызов неопределенных методов? - PullRequest
0 голосов
/ 03 июля 2018

Это кажется тем более неожиданным, когда определение фиктивного метода, передающего все аргументы, выполняет свою работу. Это следующие работы:

  def method_missing(ago, *lokatoj, &bloko)
    mistrafe(ago, *lokatoj, &bloko)
  end

  def mistrafe(ago, *lokatoj, &bloko)
    # faru ion
  end

Пока следующее не

alias mistrafe method_missing

Почему это так?

1 Ответ

0 голосов
/ 03 июля 2018

Вообще говоря, вы хотите, чтобы method_missing (который вызывается изнутри Ruby) был псевдонимом для mistrafe, а не наоборот. У вас есть реализация в mistrafe, и вы хотите, чтобы переназначение method_missing вызывало ее.

Тем не менее, будет работать следующее:

alias method_missing mistrafe

См. Документацию по псевдониму .

...