masamune 0.18.2 → 0.18.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fb31759e76d58c026aeee2bcf241611e9821da4f
4
- data.tar.gz: fb82f3c5215527397b742bd0b8108f9f8d58b4c5
3
+ metadata.gz: fc35b976d3a3db9e1c607ed58c09e38dadbf2928
4
+ data.tar.gz: 79d7c83267acf6faed9ada08768f515dc927782a
5
5
  SHA512:
6
- metadata.gz: a8c29df50f07a4d7bbc56b66940bbb1b4352ad8d2489740741cabe056803d196375c75c217d28be4d0feabf257f3a1f84788594163467b36885ae6565aa4e1b2
7
- data.tar.gz: 4e0b4decd60fe42953ccd0ac92c7c4077137e4c85db42e238893e769b86c5f159a94f505b13cc0bc681a20d0b819562afb9c121e6f435e06e9010667c51b9c7b
6
+ metadata.gz: ee73bba553255b67aa74bf852cc36a1d7a345cf9d1f586f85c115ac384e044c7e658e4c40d4f32707647ab846030c4635ac8dab5aa962f6e7525a619cd8effca
7
+ data.tar.gz: a428ee198c1e77a39f8a3ea362fd525c09dbda6efba3ef9ac6d4688c8a7860d2584dc747485872e080224bf182b16ed44923f50af223410436ecbd785b32ca0e
@@ -31,16 +31,16 @@ module Masamune::Actions
31
31
  include Masamune::Actions::Execute
32
32
 
33
33
  included do |base|
34
- base.class_option :max_tasks, aliases: '-p', type: :numeric, desc: 'Maximum number of tasks to execute in parallel', default: 4
34
+ base.class_option :max_tasks, aliases: '-p', type: :numeric, desc: 'Maximum number of tasks to execute in parallel', default: Parallel.processor_count
35
35
  end
36
36
 
37
37
  def invoke_parallel(*task_group)
38
- per_task_opts = task_group.last.is_a?(Array) ? task_group.pop : [{}]
39
- all_task_opts = task_group.last.is_a?(Hash) ? task_group.pop : {}
40
- max_tasks = [all_task_opts.delete(:max_tasks), task_group.count].min
38
+ per_task_opts = task_group.last.is_a?(Array) ? task_group.pop.dup : [{}]
39
+ all_task_opts = task_group.last.is_a?(Hash) ? task_group.pop.dup : {}
40
+ task_group_by_task_opts = task_group.product(per_task_opts)
41
+ max_tasks = [all_task_opts.delete(:max_tasks), task_group_by_task_opts.count].min
41
42
  console("Setting max_tasks to #{max_tasks}")
42
43
  bail_fast task_group, all_task_opts if all_task_opts[:version]
43
- task_group_by_task_opts = task_group.product(per_task_opts)
44
44
  Parallel.each(task_group_by_task_opts, in_processes: max_tasks) do |task_name, task_opts|
45
45
  task_env = task_opts[:env] || {}
46
46
  begin
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Masamune
24
- VERSION = '0.18.2'.freeze
24
+ VERSION = '0.18.3'.freeze
25
25
  end
@@ -29,6 +29,7 @@ describe Masamune::Actions::InvokeParallel do
29
29
  end
30
30
 
31
31
  let(:instance) { klass.new }
32
+ let(:task_opts) { { max_tasks: 0 }.freeze }
32
33
 
33
34
  describe '.invoke_parallel' do
34
35
  context 'with a single thor command' do
@@ -37,7 +38,7 @@ describe Masamune::Actions::InvokeParallel do
37
38
  end
38
39
 
39
40
  subject do
40
- instance.invoke_parallel('list', max_tasks: 0)
41
+ instance.invoke_parallel('list', task_opts)
41
42
  end
42
43
 
43
44
  it { expect { subject }.to_not raise_error }
@@ -50,7 +51,7 @@ describe Masamune::Actions::InvokeParallel do
50
51
  end
51
52
 
52
53
  subject do
53
- instance.invoke_parallel('list', { max_tasks: 0 }, [{ a: true, b: false }, { a: false, b: true }])
54
+ instance.invoke_parallel('list', task_opts, [{ a: true, b: false }, { a: false, b: true }])
54
55
  end
55
56
 
56
57
  it { expect { subject }.to_not raise_error }
@@ -63,7 +64,7 @@ describe Masamune::Actions::InvokeParallel do
63
64
  end
64
65
 
65
66
  subject do
66
- instance.invoke_parallel('list', { max_tasks: 0 }, [{ env: { 'MASAMUNE_ENV' => 'test_1' } }, { env: { 'MASAMUNE_ENV' => 'test_2' } }])
67
+ instance.invoke_parallel('list', task_opts, [{ env: { 'MASAMUNE_ENV' => 'test_1' } }, { env: { 'MASAMUNE_ENV' => 'test_2' } }])
67
68
  end
68
69
 
69
70
  it { expect { subject }.to_not raise_error }
@@ -78,7 +79,7 @@ describe Masamune::Actions::InvokeParallel do
78
79
  end
79
80
 
80
81
  subject do
81
- instance.invoke_parallel('list', 'help', { max_tasks: 0 }, [{ env: { 'MASAMUNE_ENV' => 'test_1' } }, { env: { 'MASAMUNE_ENV' => 'test_2' } }])
82
+ instance.invoke_parallel('list', 'help', task_opts, [{ env: { 'MASAMUNE_ENV' => 'test_1' } }, { env: { 'MASAMUNE_ENV' => 'test_2' } }])
82
83
  end
83
84
 
84
85
  it { expect { subject }.to_not raise_error }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: masamune
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.2
4
+ version: 0.18.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Andrews
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-23 00:00:00.000000000 Z
11
+ date: 2016-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor