Not intended to be called directly, ["exec\_request" in GitLab::API](https://metacpan.org/pod/GitLab::API#exec_request) constructs the instance itself.
Not intended to be called directly, [`exec_request` in GitLab::API](GitLab-API.md#exec_request) constructs the instance itself.
Arguments:
- `$api`
The [GitLab::API](https://metacpan.org/pod/GitLab::API) instance that will be used to issue calls.
The [`GitLab::API`](GitLab-API.md) instance that will be used to issue calls.
- `$url`
...
...
@@ -55,51 +59,55 @@ Use **reset** for this kind of behaviour.
Extra arguments.
Currently only `per_page` is used, which controls how many entities in a page can the iterator request.
- next()
-`next()`
Returns the next element or `undef` if there are no elements left.
Automatically downloads next page from API if required.
- reset()
-`reset()`
$iterator->reset
```{.pl}
$iterator->reset
```
Resets the iterator to the original state that can be reused.
Clears all data and error flags, so that the requests can be issued again.
- rewind()
-`rewind()`
$iterator->rewind
```{.pl}
$iterator->rewind
```
Resets the iterator to the position before the first element, so that the call to `next` will return the first element.
Note that this will **not** cause the iterator to re-download all pages.
Use `reset` for this purpose.
- all()
-`all()`
my @items = @{ $iterator->all };
```{.pl}
my @items = @{ $iterator->all };
```
Downloads all pages and returns an arrayref of all elements.
## Internal methods
- next\_block()
-`next_block()`
Tries to download the next page from the GitLab API.
Returns false if no page left or an error occured.
# AUTHOR
Roman Lacko <[xlacko1@fi.muni.cz](https://metacpan.org/pod/xlacko1@fi.muni.cz)>
Roman Lacko <[`xlacko1@fi.muni.cz`](mailto:xlacko1@fi.muni.cz)>