Библиотека для удобной работы с рефлектором и интерфейсами
Пакет лежит в основном пуле хаба, а opm знает этот хаб по умолчанию: короткой формы достаточно.
opm install reflectorСкачанный файл ставится командой opm install -f <файл> — сеть для этого уже не нужна.
Описание
Enchanted Reflector & Interfaces для OScript
[
](https://gitter.im/oscript-reflector/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Короткое название библиотеки reflector
Данная библиотека для языка OScript, упрощает работу с встроенным объектом Рефлектор и добавляет функциональность работы с интерфейсами
Документация и описание публичного API
Быстрый старт
Библиотека реализовывает 2 новых класса:
РефлекторОбъекта- класс отвечает за обработку проверки наличия методов у объектов и кеширования результатовИнтерфейсОбъекта- клаcс реализовывает виртуальные интерфейсы для объектов и проводит их сравнение с картами объектов (методПолучитьТаблицуМетодовобъектаРефлектор)
Установка
Для установки необходимо:
- Скачать файл reflector*.ospx из раздела releases
- Воспользоваться командой:
$ opm install -f <ПутьКФайлу>
Пример простой проверки на метод/свойство объекта
- Проверка на функцию объекта
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
ЕстьФункция = РасширенныйРефлектор.ЕстьФункция("ПроверочнаяФункция", 5);
- Проверка на процедуру объекта
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
ЕстьПроцедура = РасширенныйРефлектор.ЕстьПроцедура("ПроверочнаяПроцедура", 1);
- Проверка на свойство объекта
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
ЕстьСвойство = РасширенныйРефлектор.ЕстьСвойство("Свойство1");
- Проверка объекта на реализацию интерфейса
Интерфейс = Новый ИнтерфейсОбъекта;
Интерфейс.Ф("Функция1")
.П("Процедура1");
РасширенныйРефлектор = Новый РефлекторОбъекта(ЭтотОбъект);
РеализуетИнтерфейс = РасширенныйРефлектор.РеализуетИнтерфейс(Интерфейс);
Утверждения.ПроверитьИстину(РеализуетИнтерфейс, "Интерфейс реализуется объектом");
- Получение структуры реализованных методов объекта по интерфейсу
Интерфейс = Новый ИнтерфейсОбъекта;
Интерфейс.Ф("Функция1")
.П("Процедура1")
.Ф("ЛиповаяФункция", 2)
.П("ЛиповаяПроцедура", 3);
РасширенныйРефлектор = Новый РефлекторОбъекта(Новый ТестовыйКласс);
РеализованныеМетодыИнтерфейса = РасширенныйРефлектор.РеализованныеМетодыИнтерфейса(Интерфейс);
Доработка
Доработка проводится по git-flow. Жду ваших PR.
Лицензия
Смотри файл LICENSE.
В пакете README нет — показан README из репозитория, с тега 0.7.1.