masamune 0.18.2 → 0.18.3

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 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