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