Practical Scripting Patterns
Batch Summaries
Count completed and skipped work in a small batch.
batch-summary
A script can scan a short batch and keep scalar counters for the final report. The batch data stays inline so replay does not expose table identities.
Batch Summaries
batch_summary.lua
Replay: real traced execution (multi-file project)
local skip_level = 2
local done = 0
local skipped = 0
for _, level in ipairs({1, 2, 3}) do
if level >= skip_level then
skipped = skipped + 1
else
done = done + 1
end
end
print("skip_level=" .. skip_level)
print("done=" .. done)
print("skipped=" .. skipped)
local skip_level = 1
local done = 0
local skipped = 0
for _, level in ipairs({1, 2, 3}) do
if level >= skip_level then
skipped = skipped + 1
else
done = done + 1
end
end
print("skip_level=" .. skip_level)
print("done=" .. done)
print("skipped=" .. skipped)
local skip_level = 3
local done = 0
local skipped = 0
for _, level in ipairs({1, 2, 3}) do
if level >= skip_level then
skipped = skipped + 1
else
done = done + 1
end
end
print("skip_level=" .. skip_level)
print("done=" .. done)
print("skipped=" .. skipped)
skip_level ← 2, done ← 0, skipped ← 0
1local skip_level→ 2 = 2 --@skip_level=1, 32local done→ 0 = 03local skipped→ 0 = 0_, level in ipairs({1, 2, 3}) do
pass 1 of 35for _1, level1 in ipairs({1, 2, 3}) do6 if level >= skip_level then7 skipped = skipped + 1All 3 passes — pass 1 is the card above pass _levelskip_leveldoneskipped1 1 1 — 0 → 1 — 2 2 2 2 — 0 → 1 3 3 3 2 — 1 → 2 done ← 1
7 skipped = skipped + 18else9 done→ 1 = done + 110endskipped ← 1
pass 1 of 25for _, level in ipairs({1, 2, 3}) do6 if level2 >= skip_level2 then7 skipped→ 1 = skipped + 18 elseskipped ← 2
pass 2 of 25for _, level in ipairs({1, 2, 3}) do6 if level3 >= skip_level2 then7 skipped→ 2 = skipped + 18 elseprint("skip_level=" .. skip_level)
13print("skip_level=" .. skip_level2)14print("done=" .. done1)15print("skipped=" .. skipped2)outputskip_level=2 done=1 skipped=2
skip_level ← 1, done ← 0, skipped ← 0
1local skip_level→ 1 = 12local done→ 0 = 03local skipped→ 0 = 0_, level in ipairs({1, 2, 3}) do
pass 1 of 35for _1, level1 in ipairs({1, 2, 3}) do6 if level >= skip_level then7 skipped = skipped + 1All 3 passes — pass 1 is the card above pass _level1 1 1 2 2 2 3 3 3 skipped ← 1
pass 1 of 35for _, level in ipairs({1, 2, 3}) do6 if level1 >= skip_level1 then7 skipped→ 1 = skipped + 18 elseAll 3 passes — pass 1 is the card above pass levelskipped1 1 0 → 1 2 2 1 → 2 3 3 2 → 3 print("skip_level=" .. skip_level)
13print("skip_level=" .. skip_level1)14print("done=" .. done0)15print("skipped=" .. skipped3)outputskip_level=1 done=0 skipped=3
skip_level ← 3, done ← 0, skipped ← 0
1local skip_level→ 3 = 32local done→ 0 = 03local skipped→ 0 = 0_, level in ipairs({1, 2, 3}) do
pass 1 of 35for _1, level1 in ipairs({1, 2, 3}) do6 if level >= skip_level then7 skipped = skipped + 1All 3 passes — pass 1 is the card above pass _levelskip_leveldoneskipped1 1 1 — 0 → 1 — 2 2 2 — 1 → 2 — 3 3 3 3 — 0 → 1 done ← 1
pass 1 of 27 skipped = skipped + 18else9 done→ 1 = done + 110enddone ← 2
pass 2 of 27 skipped = skipped + 18else9 done→ 2 = done + 110endskipped ← 1
5for _, level in ipairs({1, 2, 3}) do6 if level3 >= skip_level3 then7 skipped→ 1 = skipped + 18 elseprint("skip_level=" .. skip_level)
13print("skip_level=" .. skip_level3)14print("done=" .. done2)15print("skipped=" .. skipped1)outputskip_level=3 done=2 skipped=1