-
Notifications
You must be signed in to change notification settings - Fork 183
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Tolstoy Egor
committed
Nov 1, 2015
1 parent
ef05d92
commit 5d86e2c
Showing
1 changed file
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
### Overview | ||
|
||
**Generamba** - это генератор кода, заточенный под работу с Xcode. В первую очередь предназначен для генерации модулей VIPER - но достаточно легко настраивается и для генерации любых других классов. | ||
|
||
### Основные особенности | ||
|
||
- Из коробки поддерживает работу с *.xcodeproj* файлами - все сгенерированные классы автоматически распределяются как по файловой структуре, так и по группам в проекте. | ||
- Умеет генерировать как непосредственно код, так и тесты, автоматически распределяя их по правильным таргетам. | ||
- Основан на работе с [liquid-шаблонами](https://github.com/Shopify/liquid) - синтаксис простой и понятный, особенно в сравнении с шаблонами для Xcode. | ||
- Создать новый модуль очень просто: `generamba gen MyModule`. Не требуется каждый раз вводить кучу данных - каждому проекту соответствует один конфигурационный файл, содержащий в себе стандартные пути в файловой системе и Xcode-проекте, названия таргетов, информацию об авторе. | ||
|
||
|
||
### Установка | ||
Проект пока что находится в стадии beta-версии, поэтому не добавлен в общий каталог ruby-gem'ов. Локальная установка осуществляется следующим образом: | ||
|
||
1. Склонируйте репозиторий себе на компьютер | ||
2. В консоли перейдите в директорию проекта | ||
3. Вызовите команду `gem install generamba` | ||
|
||
### Использование | ||
В настоящий момент Generamba поддерживает две команды: | ||
|
||
1. `generamba setup` - вызывается в корневой директории проекта. Помогает автоматически создать и настроить *Rambafile*, описывающий всю конфигурацию, необходимую для генерации кода. В дальнейшем этот файл может быть модифицирован вручную. | ||
2. `generamba gen MODULE_NAME` - генерирует модуль с указанным названием. В качестве стандартного используется шаблон *viper_module*. Команда поддерживает несколбко дополнительных опций - узнать о них больше поможет команда `generamba help gen`. | ||
|
||
В текущей версии нет возможности создавать локальные шаблоны и использовать их для генерации. Пока что используем следующий workaround: | ||
|
||
1. `open ~/.rvm/gems/ruby-2.1.6/gems` | ||
2. Находим директорию *Generamba-x.x.x* | ||
3. Переходим в *lib/generamba/default_templates/* | ||
4. Создаем папку с названием нового модуля. В остальном модуль создается по образцу стандартного. | ||
|
||
Оптимизация добавления шаблонов является главным приоритетом на данный момент. | ||
|
||
### Авторы | ||
|
||
- Егор Толстой | ||
- Андрей Зарембо-Годзяцкий | ||
|
||
### Лицензия | ||
|
||
MIT | ||
|
||
### TODO | ||
|
||
- Дать возможность использовать локальный шаблон, указав полный путь до него | ||
- В Rambafile держать информацию обо всех используемых в проекте шаблонах | ||
- Вынести из Rambafile информацию, специфичную для текущего автора (имя) | ||
- Добавить для каждого шаблона возможность модифицировать Podfile проекта | ||
- Добавить GUI | ||
- Добавить возможность генерирования тестов по указанным интерфейсным файлам |