Манипулируем объектами
Пулы ссылок
Для работы с пулами ссылок существует две команды, одна используется для добавления ссылки в определенный пул, другая для очистки заданного пула.
Команда pool_clear очищает пул ссылок с переданным именем. Если имя не передано, очищается пул с именем "default", который является пулом по-умолчанию.
Команда link_add добавляет ссылку в пул. В зависимости от контекста и используемых параметров, можно добавить ссылку находящуюся в регистре или в явном виде. Так, например, в блоковом контексте можно добавлять ссылку, находящуюся в регистре, а в других контекстах только в явном виде, поскольку регистр недоступен в других контекстах. Полный список параметров приведен ниже:
Параметр | Описание |
---|---|
pool | Имя пула, если отсутствует, используется имя по-умолчанию "default". |
url | Одна или несколько ссылок (смотри примеры), указанных в явном виде для добавления в пул. Если параметр отсутсвует, используется значение регистра. |
Примеры использования:
# СОЗДАДИМ ТЕСТОВЫЙ БЛОК
- register_set: '<body>
<a href="http://www.somesite.com/1">link1</a>
<a href="http://www.somesite.com/2">link2</a>
<a href="http://www.somesite.com/3">link3</a>
<a href="http://www.somesite.com/4">link4</a>
</body>'
- to_block
# -------------------------------------------------------------
# НАЙДЕМ ВСЕ ТЕГИ `a`
- find:
path: a
do:
# ЗАПОЛНИМ РЕГИСТР ЗНАЧЕНИЕМ АТТРИБУТА `href`
- parse:
attr: href
# ДОБАВИМ ЗНАЧЕНИЕ РЕГИСТРА В СПИСОК АДРЕСОВ
- link_add
# ПООЧЕРЕДНО ПРОЙДЕМ НА КАЖДЫЙ ИЗ АДРЕСОВ В СПИСКЕ, И ВЫПОЛНИМ ДЛЯ НИХ БЛОК `do`
- walk:
to: links
do:
...
...
# ОЧИСТИМ СПИСОК С ИМЕНЕМ `default`
- pool_clear
# -------------------------------------------------------------
# НАЙДЕМ ВСЕ ТЕГИ `a`
- find:
path: a
do:
# ЗАПОЛНИМ РЕГИСТР ЗНАЧЕНИЕМ АТТРИБУТА `href`
- parse:
attr: href
# ДОБАВИМ ЗНАЧЕНИЕ РЕГИСТРА В СПИСОК АДРЕСОВ С ИМЕНЕМ `main`
- link_add:
pool: main
# ПООЧЕРЕДНО ПРОЙДЕМ НА КАЖДЫЙ ИЗ АДРЕСОВ В СПИСКЕ С ИМЕНЕМ `main`, И ВЫПОЛНИМ ДЛЯ НИХ БЛОК `do`
- walk:
to: links
pool: main
do:
...
...
# ОЧИСТИМ СПИСОК С ИМЕНЕМ main
- pool_clear: main
# -------------------------------------------------------------
# ДОБАВИМ В СПИСОК С ИМЕНЕМ `somepool` АДРЕС: http://www.somesite.com/somecoolurl
- link_add:
pool: somepool
url: http://www.somesite.com/somecoolurl
# -------------------------------------------------------------
# ДОБАВИМ СПИСОК АДРЕСОВ В ПУЛ С ИМЕНЕМ `somepool`
- link_add:
pool: somepool
url:
- http://www.somesite.com/somecoolurl1
- http://www.somesite.com/somecoolurl2
- http://www.somesite.com/somecoolurl3
- http://www.somesite.com/somecoolurl4
В следующей главе мы покажем вам как работать с объектами данных.