Я пытаюсь написать систему плагинов на ruby, и у меня возникли некоторые проблемы, так как я никогда не изучал хороший набор основ. В любом случае, моя система плагинов - это всего лишь эксперимент по работе с классами. Мой класс плагинов выглядит так:
class Plugin
def info
# Set some default values when a new class is created.
name = "Test Plugin"
description = "Just a simple test plugin."
version = "1.0"
end
end
В плагине мне понадобится файл выше и я напишу такой код:
require "./_plugin_base.rb"
pluginCleanup = Plugin.new
pluginCleanup.info do
name = "Cleanup"
description = "Remove the files we don't need in the public folder."
version = "1.0"
end
Теперь я знаю, что этот код не работает. В основном то, что я хочу, это переменные экземпляра в методе info. Я попытался использовать истинные переменные экземпляра, и они работают хорошо, однако я хочу сохранить их внутри функции info, если это имеет смысл. Потому что когда я использую attr_accessor, переменные доступны как:
pluginCleanup.name = "New Value"
Может кто-нибудь сказать мне, как я мог бы заставить код работать, как описано в примерах выше? Я просто хочу иметь возможность объявить новый экземпляр и вызвать:
pluginCleanup.info.name = "New Value"