narqo/bem-yana-stub — pull request #4 by narqo (2013-03-25 11:45:06+00:00)
Title: Портировал i-handler на i-bem

1) Скопировал из [bem-bl](https://github.com/bem/bem-bl) все нужное про `i-jquery`, но в технологии `node.js`;
2) `i-bem.js` -> `i-bem.node.js`;
3) портировал `i-handler` на BEM.decl.

### Как запустить пример

Клонируемся, устанавливаемся, собираемся:

› git clone -b i-handler-bem.decl git://<>.git
› cd bem-yana-stub
› npm install
› bem make

Запускаем bem-server (используется в качестве сервера статики) и запускаем App-server.

› bem server -p 8080 -v warn & ; npm start
[1] 35163

> bem-yana-stub@0.3.0 start /Users/varankinv/projects/tmp/bem-yana-stub
> supervisor -w 'desktop.bundles/test/_test.node.js' 'desktop.bundles/test/_test.node.js'

«Как сделать так, чтобы отпустило»:

› ⌘+C
› kill %1

### Описание

У блока получился «богатый» внутренний мир: сам `i-hander` это просто базовая реализация нужных Util-методов, типа `nextTick()`, `uniq()` и пр.

Блок состои из 3-х элементов:

* `__request` — «дергает ручку» хендлера
* `__response` — обработчик запроса (тут описывается что делать с запросом, куда идти за данными и пр.)
* `__processor` — ручка хендлера, запускает обработчики

Примеры доопределенных хендлеров (response-ов) лежат на уровне `aggregator.blocks`, там 4 хендлера, два из которых балковые (см. код).

Пример блоков, использующих все это добро: `desktop.bundler/test/blocks/b*` Блоки b* на фронте дергают `i-handler__request.node.js` и заполняю результатом BEMJSON-блока; на клиенте делают то же самое, только дергается клиентский `i-handler__request.js`.

\cc @arikon @dfilatov @veged