Alterator/woo
Тут приведены основные форматы woo-команд для использования из интерфейсов:
Все функции выполняющие запросы к бакендам возвращают список команд:
- (woo-list 'url 'param 'value ...) - вызывает функцию list для запроса списка подобъектов у бакэнда.
- (woo-read 'url 'param 'value.. ) - читает некоторые данные для указанного объекта (функция read)
- (woo-write 'url 'param 'value.. ) - пишет некоторые данные в указанный объект (фунция write)
- (woo-new 'url 'param 'value..) - cоздает некий обьект (функция new)
- (woo-delete 'url 'param 'value) - уничтожает некий обьект (функция delete)
Все эти функции могут кинуть исключение типа woo-error, в случае если бакенд сообщит об ошибке. Для более удобной работы именно с этим типом исключения существует функция woo-catch (обычный catch может использоваться с любыми видами исключений). Также доступны:
- woo-catch/message - вариант woo-catch где обработчик ошибки состоит в выдаче окна с сообщением и возврата значения #f.
- woo-throw - выбрасывает исключение типа woo-error.
Для более удобного вытаскивания имени подобъекта существует функция woo-extract-name.
Для более удобного вытаскивания первой команды из ответа существует команда woo-first-command.
- woo-list-names - делает запрос list к бакенду и возвращает список имён подобъектов (без параметров)
- woo-read-first - считывает данные для указанного объекта. Композиция woo-read и woo-first-command.
- woo-get-option - возвращает значение параметра из ответа бакенда, возможно задание ответа по-умолчанию.
TODO
- woo-leaf-props: родом из vm/functions.scm
(define (woo-leaf-props url . args) (car (apply woo 'props url 'props args)))