Я искал вокруг и не нашел ничего, что могло бы помочь, поэтому здесь я публикую свой вопрос.
Я пытаюсь использовать mixin внутри улучшенного патча, который, кажется, не работает на самом деле. Я не знаю, правильно ли я все делаю или это просто невозможно из-за несвоевременного процесса очистки в Ruby.
Для справки, я работаю над плагином Sketchup 2017, который вставлять Ruby Core 2.2.4
. Последняя версия Sketchup 2019 включает Ruby Core 2.5.1
.
Вот пример Coed, иллюстрирующий, что я на самом деле делаю:
Модуль, который будет включен
module RefineModule::HierarchyWrapper
def insert
...
end
def parent_to
...
end
end
Уточнение класса Sketchup
module RefineModule
refine Sketchup::Group do
include RefineModule::HierarchyWrapper
def foo
return self.class
end
end
После применения исправления я могу настроить метод foo
на экземпляре Sketchup::Group
, но получаю NoMethodError
при попытке использовать метод insert
или parent_to
:
Error: #<NoMethodError: undefined method `insert' for #<Sketchup::Group:0x00000117946e0648>>
Я сделал что-то не так или просто невозможно объявить миксин внутри блока уточнения?
Спасибо за помощь, ребята!