From bbbd28114462e689b82dd25de01ed76adbcb56d0 Mon Sep 17 00:00:00 2001 From: Dima Granetchi Date: Sat, 20 Dec 2014 23:17:48 +0200 Subject: [PATCH] readme format --- README_ru.md | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/README_ru.md b/README_ru.md index eeeb76b..900575a 100644 --- a/README_ru.md +++ b/README_ru.md @@ -1,22 +1,20 @@ -bindx2 - связывание данных -====== - -Кроссплатформенная библиотека для связывания данных на haxe. +## bindx2 - кроссплатформенная библиотека для связывания данных на haxe. [![Build Status](https://travis-ci.org/profelis/bindx2.svg?branch=master)](https://travis-ci.org/profelis/bindx2) ====== -Возможности: +## Возможности: - автоматическая генерация сигналов, оповещающих об изменениях свойств или методов класса, +- автоматическая генерация сеттеров свойств или модификация существующих - удобное API для подписки на изменения свойств или методов класса, - расширенное API для связывания произвольного выражения, - API для быстрого связывания свойств ====== -Пример: +## Пример: ```haxe // UserModel.hx @@ -52,44 +50,44 @@ function onHealthChange(from:Null, to:Null) { ====== -API: +## API: Method | Description ------------ | ------------- -`Bind.bind(expr, listener)` | `listener` вызывается при смене свойства или метода в `expr`. Слушатель свойства принимает 2 параметра, старое и новое значение свойства, метода - 0 параметров -`Bind.bindTo(expr, toExpr)` | Присваивает значение `expr` выражению `toExpr` (NB: в случае метода вызывает метод без параметров!). Автоматически первый вызов НЕ происходит -`Bind.notify(expr, oldValue, newValue)` | Ручной вызов оповещения об изменении свойства или метода (в случае метода ожидается только один аргумент в методе `notiry`) -`Bind.unbind(expr, listener)` | Удаляется подписка на изменения свойства (NB: если `listener` не указать, произойдет полная отписка всех слушателей!) -`Bind.unbindAll(obj:IBindable)` | Удаляются все подписки на изменения всех свойств и методов объекта (NB: дальнейшая подписка доступна!) +Bind.bind(expr, listener) | `listener` вызывается при смене свойства или метода в `expr`. Слушатель свойства принимает 2 параметра, старое и новое значение свойства, метода - 0 параметров +Bind.bindTo(expr, toExpr) | Присваивает значение `expr` выражению `toExpr` (NB: в случае метода вызывает метод без параметров!). Автоматически первый вызов НЕ происходит +Bind.notify(expr, oldValue, newValue) | Ручной вызов оповещения об изменении свойства или метода (в случае метода ожидается только один аргумент в методе `notiry`) +Bind.unbind(expr, listener) | Удаляется подписка на изменения свойства (NB: если `listener` не указать, произойдет полная отписка всех слушателей!) +Bind.unbindAll(obj:IBindable) | Удаляются все подписки на изменения всех свойств и методов объекта (NB: дальнейшая подписка доступна!) -Расширенное API: +## Расширенное API: Method | Description ------------ | ------------- -`BindExt.chain(chainExpr, listener)` | Подписка на последовательность вызовов `a.b.c(1).d..`, срабатывает при любом изменении в цепи вызово, автоматически отписываясь от предыдущего значения и подписываясь на новое. Методы доступно указывать с параметрами. (NB: первый раз `listener` вызывается автоматически). `listener` ведет себя аналогично как и в Bind.bind методе. Метод возвращает ссылку на функцию, позволяющую полностью отписаться. -`BindExt.chainTo(chainExpr, toExpr)` | Связывание выражения `chainExpr` с `toExpr`. (NB: первый раз связывание осуществляется автоматически). Метод возвращает ссылку на функцию, позволяющую полностью отписаться. -`BindExt.expr(expr, listener)` | Универсальный метод, `expr` может быть произвольным выражением, автоматически будут найдены все `IBindable` объекты и вызовы их свойств на которые можно подписаться. `listener` всегда принимает 2 параметра, в случае метода, предыдущее значение автоматически запомнимается. (NB: первый раз `listener` вызывается автоматически). Метод возвращает ссылку на функцию, позволяющую полностью отписаться. -`BindExt.exprTo(expr, toExpr)` | Связывание произвольного выражения `expr` с `toExpr`. (NB: первый раз `listener` вызывается автоматически). Метод возвращает ссылку на функцию, позволяющую полностью отписаться. +BindExt.chain(chainExpr, listener) | Подписка на последовательность вызовов `a.b.c(1).d..`, срабатывает при любом изменении в цепи вызово, автоматически отписываясь от предыдущего значения и подписываясь на новое. Методы доступно указывать с параметрами. (NB: первый раз `listener` вызывается автоматически). `listener` ведет себя аналогично как и в Bind.bind методе. Метод возвращает ссылку на функцию, позволяющую полностью отписаться. +BindExt.chainTo(chainExpr, toExpr) | Связывание выражения `chainExpr` с `toExpr`. (NB: первый раз связывание осуществляется автоматически). Метод возвращает ссылку на функцию, позволяющую полностью отписаться. +BindExt.expr(expr, listener) | Универсальный метод, `expr` может быть произвольным выражением, автоматически будут найдены все `IBindable` объекты и вызовы их свойств на которые можно подписаться. `listener` всегда принимает 2 параметра, в случае метода, предыдущее значение автоматически запомнимается. (NB: первый раз `listener` вызывается автоматически). Метод возвращает ссылку на функцию, позволяющую полностью отписаться. +BindExt.exprTo(expr, toExpr) | Связывание произвольного выражения `expr` с `toExpr`. (NB: первый раз `listener` вызывается автоматически). Метод возвращает ссылку на функцию, позволяющую полностью отписаться. ====== -@:bindable meta: +## `bindx.IBindable` и @:bindable meta: -`@:bindable` мета указанная для класса наследуется для всех публичных свойств без указанной `@:bindable` меты +Свойства и методы с метой `@:bindable` специально обрабатываются. `@:bindable` мета указанная для класса наследуется для всех публичных свойств без указанной `@:bindable` меты Поддерживает дополнительные параметры `@:bindable(paramName1 = value, paramName2 = value ...)` Parameter | Default value | Description ------------ | ------------- | ------------- inlineSetter | false | В случае когда у свойства сеттер отсутствовал и то сгенерируется автоматически. А свойство `inlineSetter` укажет добавить ему `inline` аксессор или нет -force | false | Режим игнорирует другие параметры, создает сигнал для оповещения об изменениях, но не генерирует сеттеры или редактирует существующий, позволяя программисту самому управлять оповещением об изменениях используя метов `Bind.notify` +force | false | Режим игнорирует другие параметры, создает сигнал для оповещения об изменениях, но не генерирует сеттеры или редактирует существующий, позволяя программисту самому управлять оповещением об изменениях используя метов `Bind.notify`. Также `force` режим расширяет список допустимых свойств, свойства у которых сеттер указан как `null`, `never` или `dynamic` (без `force` режима связывание подобных свойств невозможно из-за того, что нельзя изменить или создать сеттер). lazySignal | true | Управляет правилом создания сигнала для оповещения. Сразу или автоматически при первом запросе (по умолчанию ленивая инициализация активна). inlineSignalGetter | false | В случае ленивой инициализации сигнала, когда создается геттер для сигнала, добавляет `inline` аксессор данному геттеру. (NB: актуально только в случае `lazySignal = true`) ====== -Логирование/дебаг: +## Логирование: ```-D bindx_log=LOG_LEVEL```