Я использую компонент Ruby внутри звуковой среды приложения. Этот Ruby-компонент представлен экземпляром класса RubyEdit
. Это обеспечивает интерфейс между моим кодом Ruby и средой.Как я могу динамически добавлять/расширять методы из класса?
Например, если я пишу self
он выводит экземпляр класса RubyEdit, который представляет этот компонент:
славные вещи, что я могу/должен «осуществлять/расширяющие» некоторые методы, которые RubyEdit
вызовет, когда он получит некоторые события. Я могу определить свой собственный метод event
для этого экземпляра:
def event
# my own event code
end
и она будет называться, когда окружающая среда получить некоторые события за пределами этого рубинового компонента. Или я могу назвать class method
называется redraw
, и это будет вызывать мой пользовательский метод draw
:
def draw
# my own draw code (this will called after invoking redraw from Ruby Component)
end
мне нужно понять некоторую иерархию этого процесса, поэтому я делаю моделирование этого RubyEdit
класса в Ruby.
Как это будет выглядеть? Я имею в виду: как я могу предоставить методы, которые будут определены «позже»?
Это как RubyEdit будет выглядеть, я думаю:
class RubyEdit
def self.redraw
# calling this class method should invoke my extended draw method
end
def draw
end
def event
end
end
, но я не понимаю, как поместить event
и draw
методы продолжаемых. Интерфейсы?