omq-cli 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/omq/cli/base_runner.rb +44 -11
- data/lib/omq/cli/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 887b1bd4a69ddbbcc0d4885c05c277f32285253e7d7163407ace5451ff87ba08
|
|
4
|
+
data.tar.gz: 241d25d7b9e9be0a9ea59efb8a1f92c3f9667fafd73087763347a337c84d9299
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d536665684b7c77cf5a724d057bf534b93dc19e5d0f2f9fa5035d384131353fd930b453b5e6417ca90bfa77a5a304a6759a6ae85de807e402b1ee07e5d78b033
|
|
7
|
+
data.tar.gz: 214a3d68093f7ac1e04a2a3b7e0438459ce826907dd0ee5baab2ed86c6bc5f571b26eb332d91383e6935e893f41344f5e656d4286e930022a20ae43a48b61ac0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.1 — 2026-04-07
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **`-i` on recv-only sockets** — `pull -i 0.2` rate-limits receiving to
|
|
8
|
+
one message every 200 ms using `Async::Loop.quantized`. Works on all
|
|
9
|
+
recv-only socket types (pull, sub, gather, dish).
|
|
10
|
+
- **`--send-eval` with `-i` and piped stdin** — `seq 5 | omq push -E '…' -i 1`
|
|
11
|
+
ignored stdin and produced no output. `#read_next_or_nil` now reads
|
|
12
|
+
stdin when available; `#send_tick` distinguishes generator mode (no
|
|
13
|
+
stdin, eval only) from stdin-exhausted EOF.
|
|
14
|
+
|
|
3
15
|
## 0.3.0 — 2026-04-07
|
|
4
16
|
|
|
5
17
|
### Fixed
|
data/lib/omq/cli/base_runner.rb
CHANGED
|
@@ -207,7 +207,13 @@ module OMQ
|
|
|
207
207
|
|
|
208
208
|
def send_tick
|
|
209
209
|
raw = read_next_or_nil
|
|
210
|
-
if raw.nil?
|
|
210
|
+
if raw.nil?
|
|
211
|
+
if @send_eval_proc && !@stdin_ready
|
|
212
|
+
# Pure generator mode: no stdin, eval produces output from nothing.
|
|
213
|
+
parts = eval_send_expr(nil)
|
|
214
|
+
send_msg(parts) if parts
|
|
215
|
+
return 1
|
|
216
|
+
end
|
|
211
217
|
@send_tick_eof = true
|
|
212
218
|
return 0
|
|
213
219
|
end
|
|
@@ -220,17 +226,44 @@ module OMQ
|
|
|
220
226
|
def run_recv_logic
|
|
221
227
|
n = config.count
|
|
222
228
|
i = 0
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
229
|
+
if config.interval
|
|
230
|
+
run_interval_recv(n)
|
|
231
|
+
else
|
|
232
|
+
loop do
|
|
233
|
+
parts = recv_msg
|
|
234
|
+
break if parts.nil?
|
|
235
|
+
parts = eval_recv_expr(parts)
|
|
236
|
+
output(parts)
|
|
237
|
+
i += 1
|
|
238
|
+
break if n && n > 0 && i >= n
|
|
239
|
+
end
|
|
230
240
|
end
|
|
231
241
|
end
|
|
232
242
|
|
|
233
243
|
|
|
244
|
+
def run_interval_recv(n)
|
|
245
|
+
i = recv_tick
|
|
246
|
+
return if i == 0
|
|
247
|
+
return if n && n > 0 && i >= n
|
|
248
|
+
Async::Loop.quantized(interval: config.interval) do
|
|
249
|
+
i += recv_tick
|
|
250
|
+
break if @recv_tick_eof || (n && n > 0 && i >= n)
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
def recv_tick
|
|
256
|
+
parts = recv_msg
|
|
257
|
+
if parts.nil?
|
|
258
|
+
@recv_tick_eof = true
|
|
259
|
+
return 0
|
|
260
|
+
end
|
|
261
|
+
parts = eval_recv_expr(parts)
|
|
262
|
+
output(parts)
|
|
263
|
+
1
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
|
|
234
267
|
# Parallel recv-eval: delegates to ParallelRecvRunner.
|
|
235
268
|
#
|
|
236
269
|
def run_parallel_recv(task)
|
|
@@ -328,10 +361,10 @@ module OMQ
|
|
|
328
361
|
def read_next_or_nil
|
|
329
362
|
if config.data || config.file
|
|
330
363
|
read_next
|
|
331
|
-
elsif
|
|
332
|
-
|
|
364
|
+
elsif stdin_ready?
|
|
365
|
+
read_stdin_input
|
|
333
366
|
else
|
|
334
|
-
|
|
367
|
+
nil
|
|
335
368
|
end
|
|
336
369
|
end
|
|
337
370
|
|
data/lib/omq/cli/version.rb
CHANGED