dorian-parallel 0.2.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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