Generamba - это генератор кода, заточенный под работу с Xcode. В первую очередь предназначен для генерации модулей VIPER - но достаточно легко настраивается и для генерации любых других классов.
- Из коробки поддерживает работу с .xcodeproj файлами - все сгенерированные классы автоматически распределяются как по файловой структуре, так и по группам в проекте.
- Умеет генерировать как непосредственно код, так и тесты, автоматически распределяя их по правильным таргетам.
- Основан на работе с liquid-шаблонами - синтаксис простой и понятный, особенно в сравнении с шаблонами для Xcode.
- Создать новый модуль очень просто:
generamba gen MyModule. Не требуется каждый раз вводить кучу данных - каждому проекту соответствует один конфигурационный файл, содержащий в себе стандартные пути в файловой системе и Xcode-проекте, названия таргетов, информацию об авторе.
Проект пока что находится в стадии beta-версии, поэтому не добавлен в общий каталог ruby-gem'ов. Локальная установка осуществляется следующим образом:
- Склонируйте репозиторий себе на компьютер
- В консоли перейдите в директорию проекта
- Вызовите команду
gem install generamba
В настоящий момент Generamba поддерживает две команды:
generamba setup- вызывается в корневой директории проекта. Помогает автоматически создать и настроить Rambafile, описывающий всю конфигурацию, необходимую для генерации кода. В дальнейшем этот файл может быть модифицирован вручную.generamba gen MODULE_NAME- генерирует модуль с указанным названием. В качестве стандартного используется шаблон viper_module. Команда поддерживает несколбко дополнительных опций - узнать о них больше поможет командаgeneramba help gen.
В текущей версии нет возможности создавать локальные шаблоны и использовать их для генерации. Пока что используем следующий workaround:
open ~/.rvm/gems/ruby-2.1.6/gems- Находим директорию Generamba-x.x.x
- Переходим в lib/generamba/default_templates/
- Создаем папку с названием нового модуля. В остальном модуль создается по образцу стандартного.
Оптимизация добавления шаблонов является главным приоритетом на данный момент.
- Rambler.iOS team
MIT
