Изменен: 20.01.2023 05:45:49
Библиотека для удобной работы с рефлектором и интерфейсами
E
nchanted R
eflector & I
nterfaces для OScriptКороткое название библиотеки reflector
Данная библиотека для языка OScript, упрощает работу с встроенным объектом Рефлектор
и добавляет функциональность работы с интерфейсами
Документация и описание публичного API
Библиотека реализовывает 2 новых класса:
РефлекторОбъекта
- класс отвечает за обработку проверки наличия методов у объектов и кеширования результатовИнтерфейсОбъекта
- клаcс реализовывает виртуальные интерфейсы для объектов и проводит их сравнение с картами объектов (метод ПолучитьТаблицуМетодов
объекта Рефлектор
)Для установки необходимо:
$ opm install -f <ПутьКФайлу>
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
ЕстьФункция = РасширенныйРефлектор.ЕстьФункция("ПроверочнаяФункция", 5);
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
ЕстьПроцедура = РасширенныйРефлектор.ЕстьПроцедура("ПроверочнаяПроцедура", 1);
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
ЕстьСвойство = РасширенныйРефлектор.ЕстьСвойство("Свойство1");
Интерфейс = Новый ИнтерфейсОбъекта;
Интерфейс.Ф("Функция1")
.П("Процедура1");
РасширенныйРефлектор = Новый РефлекторОбъекта(ЭтотОбъект);
РеализуетИнтерфейс = РасширенныйРефлектор.РеализуетИнтерфейс(Интерфейс);
Утверждения.ПроверитьИстину(РеализуетИнтерфейс, "Интерфейс реализуется объектом");
Интерфейс = Новый ИнтерфейсОбъекта;
Интерфейс.Ф("Функция1")
.П("Процедура1")
.Ф("ЛиповаяФункция", 2)
.П("ЛиповаяПроцедура", 3);
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
РеализованныеМетодыИнтерфейса = РасширенныйРефлектор.РеализованныеМетодыИнтерфейса(Интерфейс);
Доработка проводится по git-flow. Жду ваших PR.
Смотри файл LICENSE
.