dorian-parallel 0.2.3 → 1.1.0

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/parallel +63 -6
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d752b46df12975fe4ac0187dece981625a873f9a78b9e9bfc931f09424a9c18
4
- data.tar.gz: 39db3326ee7c02c52966ce7e1572eba0d2d2a5ba08a975f55e52f15837a0700d
3
+ metadata.gz: 4d1026eb608608275afad69ed61552b3a613eee94528c6fbb64326b428e15306
4
+ data.tar.gz: 170227b6cd9852bd7f658a9b6b43bb907b4c22373e3104726056e68793ba8b8d
5
5
  SHA512:
6
- metadata.gz: 46f45c29851599fd1328c2911fe7190727c397d9fce3e46825ba748e96b6af287cff39c71581bd56947a1cdf0356cdf9bdc790e07e0ac0fcf9dfd3ff1c130a07
7
- data.tar.gz: 35e2b77d9c7743537960e6b71ddb51f6473655a9be2823c594b20917e7d097e3ffffebf472bd27687c8587e079fc0042a10a2e3248f588fa0d2fd0a1d9e02fa9
6
+ metadata.gz: f4de31b833bd11afbc6cc06422e345029c4510d1c93cbdcc78a4b22714843ab336ac1c26346a36191245d78961b79a3025377f2b7fa55cf873913a9752c7b818
7
+ data.tar.gz: 83d715df1dba961a765240f00d734a13384989d8e62bae2af4f2475dd919ff1f230fc9998af6e7fb02b2a00f894bf788cc365e0c0bd24d5f26ef2beac4a9fd11
data/bin/parallel CHANGED
@@ -1,14 +1,71 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "dorian/arguments"
5
+ require "dorian/eval"
6
+ require "dorian/progress"
4
7
  require "parallel"
5
8
 
6
- if ARGV.size != 1 || ARGV[0] == "--help" || ARGV[0] == "-h"
7
- puts "USAGE: ... | parallel CODE"
8
- exit
9
+ parsed =
10
+ Dorian::Arguments.parse(
11
+ debug: {
12
+ alias: :d
13
+ },
14
+ stdout: {
15
+ aliases: %i[out o],
16
+ default: true
17
+ },
18
+ stderr: {
19
+ aliases: %i[err e],
20
+ default: true
21
+ },
22
+ colorize: {
23
+ aliases: %i[color c],
24
+ default: true
25
+ },
26
+ progress: {
27
+ alias: :p
28
+ },
29
+ progress_format: {
30
+ type: :string,
31
+ alias: :pf,
32
+ default: "full"
33
+ },
34
+ rails: {
35
+ alias: :r
36
+ },
37
+ version: {
38
+ alias: :v
39
+ },
40
+ help: {
41
+ alias: :h
42
+ }
43
+ )
44
+
45
+ abort parsed.help if parsed.options.help
46
+
47
+ if parsed.options.version
48
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
49
+ end
50
+
51
+ input = parsed.files.map { |file| File.read(file) }.join("\n")
52
+ input = $stdin.each_line.to_a.map(&:strip).join("\n") if input.empty?
53
+ inputs = input.lines.map(&:strip)
54
+ ruby = parsed.arguments.join(" ")
55
+ debug = parsed.options.debug
56
+ stdout = parsed.options.stdout && !parsed.options.progress
57
+ stderr = parsed.options.stderr && !parsed.options.progress
58
+ colorize = parsed.options.colorize
59
+ total = inputs.size
60
+ format = parsed.options.progress_format
61
+
62
+ if parsed.options.progress
63
+ progress = Dorian::Progress.create(total:, format:)
64
+ else
65
+ progress = nil
9
66
  end
10
67
 
11
- Parallel.each($stdin.each_line.to_a) do |it|
12
- it.strip!
13
- eval(ARGV.first)
68
+ Parallel.each(inputs) do |it|
69
+ Dorian::Eval.eval(it:, ruby:, debug:, stdout:, stderr:, colorize:)
70
+ progress&.increment
14
71
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-parallel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel