Spec-Zone.ru › Hammerspoon

hs.watchable

Фреймворк для Lua, минималистичный наблюдатель значений пар «ключ-значение».

Этот модуль позволяет вам создать таблицу с определённым меткой или путем, которые могут использоваться для обмена данными с другими модулями или кодом. Другие модули могут зарегистрироваться в качестве наблюдателей за конкретной парой «ключ-значение» в таблице объекта watchable, и будут автоматически уведомлены при изменении этой пары «ключ-значение».

Цель состоит в том, чтобы предоставить механизм для простого и независимого обмена информацией о состоянии между отдельными и (в основном) не связанными кодами.

Обзор API

  • Конструкторы — вызовы API, которые возвращают объект, обычно такой, который предлагает методы API
    • new
    • watch
  • Методы — вызовы API, которые могут быть выполнены только над объектом, возвращённым конструктором
    • callback
    • change
    • pause
    • release
    • resume
    • value

Документация API

Конструкторы

new
Подпись hs.watchable.new(path, [externalChanges]) -> table
Тип Конструктор
Описание

Создаёт таблицу, за которой другие модули могут наблюдать за изменениями ключей

Параметры
  • path — глобальное имя для этой внутренней таблицы, к которой внешний код может ссылаться на таблицу.
  • externalChanges — необязательный булево значение, по умолчанию false, указывающее, может ли внешний код изменять ключи в этой таблице (двусторонний обмен).
Возвращаемое значение
  • таблица с методами мета, которые уведомят внешний код, зарегистрированный для наблюдения за этой таблицей, о изменениях пар «ключ-значение».
Примечания
  • Этот конструктор используется кодом, который хочет поделиться информацией о состоянии, за которым другой код может зарегистрироваться для наблюдения.

  • Вы можете указать любое строковое имя в качестве пути, но оно должно быть уникальным — произойдёт ошибка, если имя пути уже зарегистрировано.

  • Все пары «ключ-значение», хранящиеся в этой таблице, потенциально могут наблюдаться внешним кодом — если вы хотите сохранить какие-то данные в секрете, не храните их в этой таблице.

  • externalChanges будет применяться ко всем ключам в этой таблице — если вы хотите разрешить извне изменять только некоторые ключи, вам нужно зарегистрировать отдельные пути.

  • Если внешние изменения разрешены, вам нужно зарегистрировать своего собственного наблюдателя с помощью hs.watchable.watch, если требуется действие при внешних изменениях.

Источник extensions/watchable/watchable.lua строка 188
watch
Подпись hs.watchable.watch(path, [key], callback) -> watchableObject
Тип Конструктор
Описание

Создаёт наблюдателя, который будет вызываться при изменении указанного ключа в указанном пути.

Параметры
  • path — строка, определяющая путь для наблюдения. Если key не предоставлен, то это должна быть строка вида «путь.ключ», где ключ будет определён как строка после последнего «.»
  • key — если предоставлено, строка, определяющая конкретный ключ в пути для наблюдения.
  • callback — необязательная функция, которая будет вызываться при изменении ключа, указанного в пути. Функция должна ожидать следующие аргументы:
    • watcher — сам объект наблюдателя
    • path — наблюдаемый путь
    • key — конкретный ключ в пути, вызвавший этот обратный вызов
    • old — старое значение для этого ключа, может быть nil
    • new — новое значение для этого ключа, может быть nil
Возвращаемое значение
  • watchableObject
Примечания
  • Этот конструктор используется кодом, который хочет отслеживать информацию о состоянии, которая делится другим кодом.

  • Функция обратного вызова вызывается после того, как новое значение уже было установлено — обратный вызов это уведомление «изменилось», а не уведомление «изменится».

  • Если ключ (указанный как отдельный аргумент или как последний компонент пути) равен «*», то все изменения пар «ключ-значение», которые происходят для таблицы, указанной путем, вызовут обратный вызов. Это сокращение для наблюдения за всей таблицей, а не только за конкретной парой «ключ-значение» в таблице.

  • Возможно зарегистрировать наблюдателя для пути, который ещё не зарегистрирован с помощью hs.watchable.new. Получение текущего значения с помощью hs.watchable:value в таком случае вернёт nil.

Источник extensions/watchable/watchable.lua строка 220

Методы

callback
Подпись hs.watchable:callback(fn) -> watchableObject
Тип Метод
Описание

Изменение или удаление функции обратного вызова для watchableObject.

Параметры
  • fn — функция или явное nil для удаления, определяющая новую функцию обратного вызова для получения уведомлений для этого watchableObject
Возвращаемое значение
  • watchableObject
Примечания
  • см. hs.watchable.watch для описания аргументов, которые должна ожидать функция обратного вызова.
Источник extensions/watchable/watchable.lua строка 100
change
Подпись hs.watchable:change([key], value) -> watchableObject
Тип Метод
Описание

Внешне изменить значение пары «ключ-значение», отслеживаемой watchableObject.

Параметры
  • key — если watchableObject был определён с ключом «*», этот аргумент является обязательным и определяет конкретный ключ наблюдаемой таблицы, значение которого нужно изменить. Если при определении watchableObject был указан конкретный ключ, этот аргумент не должен быть предоставлен.
  • value — новое значение для ключа.
Возвращаемое значение
  • watchableObject
Примечания
  • если внешние изменения не разрешены для указанного пути, этот метод генерирует ошибку
Источник extensions/watchable/watchable.lua строка 144
pause
Подпись hs.watchable:pause() -> watchableObject
Тип Метод
Описание

Временно остановить уведомления о паре(ах) «ключ-значение», отслеживаемой этим watchableObject.

Параметры
  • Ничего
Возвращаемое значение
  • watchableObject
Источник extensions/watchable/watchable.lua строка 61
release
Подпись hs.watchable:release() -> nil
Тип Метод
Описание

Удаляет watchableObject, чтобы пары «ключ-значение», отслеживаемые этим объектом, больше не генерировали уведомления.

Параметры
  • Ничего
Возвращаемое значение
  • nil
Источник extensions/watchable/watchable.lua строка 81
resume
Подпись hs.watchable:resume() -> watchableObject
Тип Метод
Описание

Возобновить уведомления о паре(ах) «ключ-значение», отслеживаемой этим watchableObject, которые были ранее приостановлены.

Параметры
  • Ничего
Возвращаемое значение
  • watchableObject
Источник extensions/watchable/watchable.lua строка 71
value
Подпись hs.watchable:value([key]) -> currentValue
Тип Метод
Описание

Получить текущее значение пары «ключ-значение», отслеживаемой watchableObject

Параметры
  • key — если watchableObject был определён с ключом «*», этот аргумент является обязательным и определяет конкретный ключ наблюдаемой таблицы, значение которого нужно получить. Если при определении watchableObject был указан конкретный ключ, этот аргумент игнорируется.
Возвращаемое значение
  • Текущее значение пары «ключ-значение», отслеживаемой watchableObject. Может быть nil.
Источник extensions/watchable/watchable.lua строка 125

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.watchable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API