Первый - это просто неизбежная двусмысленность. Если вы хотите, чтобы классы CLI выглядели как классы Ruby, у вас нет другого выбора, кроме как сопоставить конструктор с методом new
. Итак, если у вас есть и метод real new
, и синтезированный метод, который отображается на конструктор, что бы вы ни делали, синтетический метод затеняет реальный или наоборот. В любом случае, вы проигрываете.
Вот почему все классы CLI имеют синтетический clr_new
метод:
Tester.clr_new
# In constructor