dorian-parallel 1.0.0 → 1.1.1

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 +51 -3
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfba0dfc150be77a2e94518e0fd646854c99a63e7cc827d09ee7b0fb7b4cc184
4
- data.tar.gz: 81097441dc78243c09aa0d3e409673cb9a98503162cac668aa850d378d225d2d
3
+ metadata.gz: 1358310af95a41f3977ea2553163925aaccea62287d89ddc80a4561fcb12c2c9
4
+ data.tar.gz: 77fd027ef61db1b990c9da8a4a8ebe2f2af214879c58d4e99c88d4bc85e130e6
5
5
  SHA512:
6
- metadata.gz: b97aae3db16d4e7bf7f8e06f708775ae45dcb5917d7b2d14c359df22104bfd94adc5655023679b6c38dfac98c17b26b8af4e90d1839845c0856c16186ef65c6e
7
- data.tar.gz: e6c1f41262ca9a458ac06a78fd423da13578280c3ef932284d7b6180fd3f663c4781803670481af626b5a22c6a6c6f8206f237bbe3771e4484b3bf3467b268db
6
+ metadata.gz: 7a78880c02aa58c914ebd088a6cad352a6d5e22053cb331daa071ac601ec75b9ef8dbf3d4930cee4476e55b5666d54c7e85a1f2d1905442115e6782b0f37717b
7
+ data.tar.gz: 5c08037bb7ac714a5dbd888e9afbdec62ecf233b099e47b53f1aadd59e10dd19e8f9e14b99ebcd59d86cd906ddc9a1739c64126517e68fb5a84852731f3b05b0
data/bin/parallel CHANGED
@@ -2,9 +2,45 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dorian/arguments"
5
+ require "dorian/eval"
6
+ require "dorian/progress"
5
7
  require "parallel"
6
8
 
7
- parsed = Dorian::Arguments.parse(version: { alias: :v }, help: { alias: :h })
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
+ )
8
44
 
9
45
  abort parsed.help if parsed.options.help
10
46
 
@@ -14,6 +50,18 @@ end
14
50
 
15
51
  input = parsed.files.map { |file| File.read(file) }.join("\n")
16
52
  input = $stdin.each_line.to_a.map(&:strip).join("\n") if input.empty?
17
- Parallel.each(input.lines.map(&:strip)) do |it|
18
- eval(parsed.arguments.join(" "))
53
+ inputs = input.lines.map(&:strip)
54
+ ruby = parsed.arguments.join(" ")
55
+ debug = parsed.options.debug
56
+ progress = parsed.options.progress
57
+ stdout = parsed.options.stdout
58
+ stderr = parsed.options.stderr
59
+ colorize = parsed.options.colorize
60
+ total = inputs.size
61
+ format = parsed.options.progress_format
62
+ progress = progress ? Dorian::Progress.create(total:, format:) : nil
63
+
64
+ Parallel.each(inputs) do |it|
65
+ Dorian::Eval.eval(it:, ruby:, debug:, stdout:, stderr:, colorize:)
66
+ progress&.increment
19
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-parallel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié