Skip to content

Commit b384bf9

Browse files
docs: Auto-generate vimdocs + vimtags (#549)
Co-authored-by: YaroSpace <5670940+YaroSpace@users.noreply.github.com>
1 parent f853463 commit b384bf9

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

doc/kulala.NEWS.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ Table of Contents *kulala.NEWS-table-of-contents*
1616
VERSION 5.3.0 *kulala.NEWS-kulala-news-version-5.3.0*
1717

1818

19+
FEATURE: SCRIPTING REQUEST.ITERATION() - CURRENT COUNT OF REPLAYS LUA, JS |kulala.lua-scripts.txt| |kulala.request-reference.txt|
20+
21+
1922
ENHANCEMENT: CONFIG OPTION KULALA_KEYMAPS_PREFIX TO SET CUSTOM PREFIX FOR KULALA KEYMAPS
2023

2124

doc/kulala.demos.txt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -242,13 +242,9 @@ The archive |kulala.demos.zip| also contains sample `httt-client-env.json` and
242242
const results = client.global.get("results");
243243
if (!results) { return; }
244244

245-
var idx = (request.variables.get("idx") ?? -1) + 1; // initialize index
246-
request.variables.set("idx", idx); // update index
247-
248-
const item = results[idx];
245+
const item = results[request.iteration() - 1]; // get item by index
249246

250247
if (!item) {
251-
request.variables.set("idx", -1); // reset index
252248
client.global.set("results", null);
253249
return request.skip(); // skip if no more items
254250
}
@@ -273,9 +269,7 @@ The archive |kulala.demos.zip| also contains sample `httt-client-env.json` and
273269
local response = client.responses["Request_one"].json
274270
if not response then return end
275271

276-
request.environment.idx = (request.environment.idx or 0) + 1 -- initialize index
277-
local item = response.json.results[request.environment.idx]
278-
272+
local item = response.json.results[request.iteration()]
279273
if not item then return request.skip() end -- skip if no more items
280274

281275
client.log(item)

doc/kulala.lua-scripts.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ REQUEST
6969
local request = {
7070
skip = function() end, -- skip the request (useful in pre-request scripts)
7171
replay = function() end, -- replay the request (useful in post-request scripts)
72+
variables = {}, -- request variables, alias for environment (for compatibility with JS scripting)
73+
iteration = function() end, -- the current count of request replays
7274
}
7375
<
7476

@@ -240,12 +242,10 @@ ITERATING OVER RESULTS AND MAKING REQUESTS FOR EACH ITEM
240242

241243
< {%
242244
-- lua
243-
local response = client.responses["Request_one"].json
245+
local response = client.responses["Request_one"].json -- get body of the response decoded as json
244246
if not response then return end
245247

246-
request.environment.idx = (request.environment.idx or 0) + 1 -- initialize index
247-
local item = response.results[request.environment.idx]
248-
248+
local item = response.json.results[request.iteration()]
249249
if not item then return request.skip() end -- skip if no more items
250250

251251
client.log(item)

doc/kulala.request-reference.txt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Table of Contents *kulala.request-reference-table-of-contents*
1717
- request.url.tryGetSubstituted|kulala.request-reference-scripts-request-reference-request.url.trygetsubstituted|
1818
- request.skip|kulala.request-reference-scripts-request-reference-request.skip|
1919
- request.replay|kulala.request-reference-scripts-request-reference-request.replay|
20+
- request.iteration|kulala.request-reference-scripts-request-reference-request.iteration|
2021

2122
==============================================================================
2223
1. Scripts request reference*kulala.request-reference-scripts-request-reference*
@@ -233,6 +234,15 @@ Replays the current request. Useful for conditional requests, see below.
233234
<
234235

235236

237+
REQUEST.ITERATION*kulala.request-reference-scripts-request-reference-request.iteration*
238+
239+
Returns the current count of request replays.
240+
241+
>javascript
242+
request.replay();
243+
<
244+
245+
236246
CONDITIONAL REQUESTS
237247

238248
>http
@@ -283,13 +293,9 @@ ITERATING OVER RESULTS AND MAKING REQUESTS FOR EACH ITEM
283293
const results = client.global.get("results");
284294
if (!results) { return; }
285295

286-
var idx = (request.variables.get("idx") ?? -1) + 1; // initialize index
287-
request.variables.set("idx", idx); // update index
288-
289-
const item = results[idx];
296+
const item = results[request.iteration() - 1]; // get item by index
290297

291298
if (!item) {
292-
request.variables.set("idx", -1); // reset index
293299
client.global.set("results", null);
294300
return request.skip(); // skip if no more items
295301
}

0 commit comments

Comments
 (0)