simplecov-parallel 0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e92642ff81ef2e617345126a45380f06cc55a23a
4
+ data.tar.gz: 4eda4cf6cc80c3dbd4e2a22f603fe6e97d2d7e80
5
+ SHA512:
6
+ metadata.gz: 4563472ac7358a32d559f0ebeada789dbcf0424558bd96931948f4ef86619967a4f27e104c058be4565cc8a9f338a661a2d3459699bfc7ebb35a133ba74592e9
7
+ data.tar.gz: ee2d6183d9213721c54fbfa849453364f1778ce1085af9932b4fc212f401dd63ac84ffd83019c966fd8e71ce1295184c55b6069c21c20b002ed6c9d7bce6b353
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/examples.txt
9
+ /spec/reports/
10
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,28 @@
1
+ AllCops:
2
+ Exclude:
3
+ - fixtures/**/*
4
+ - vendor/**/*
5
+ TargetRubyVersion: 2.1
6
+
7
+ Metrics/LineLength:
8
+ Max: 100
9
+
10
+ Style/ClassAndModuleChildren:
11
+ Exclude:
12
+ - spec/**/*
13
+
14
+ Style/Documentation:
15
+ Enabled: false
16
+
17
+ Style/EmptyElse:
18
+ Enabled: false
19
+
20
+ Style/GuardClause:
21
+ Enabled: false
22
+
23
+ Style/RegexpLiteral:
24
+ Exclude:
25
+ - '*.gemspec'
26
+
27
+ Style/SingleLineBlockParams:
28
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ # simplecov 0.12.0 has a bug in result merger and the bugfix is not yet released.
6
+ # https://github.com/colszowka/simplecov/pull/513
7
+ gem 'simplecov', github: 'colszowka/simplecov'
8
+
9
+ group :development, :test do
10
+ gem 'rake', '~> 11.0'
11
+ gem 'rspec', '~> 3.5'
12
+ gem 'rubocop', '~> 0.42'
13
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Yuji Nakayama
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # SimpleCov::Parallel
2
+
3
+ **SimpleCov::Parallel** is a SimpleCov extension for parallelism support.
4
+ Currently only [CircleCI parallelism](https://circleci.com/docs/parallelism/) is supported.
5
+
6
+ ## Installation
7
+
8
+ Add these lines to your application's Gemfile:
9
+
10
+ ```ruby
11
+ # simplecov 0.12.0 has a bug in result merger and the bugfix is not yet released.
12
+ # https://github.com/colszowka/simplecov/pull/513
13
+ gem 'simplecov', github: 'colszowka/simplecov'
14
+ gem 'simplecov-parallel'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ ```bash
20
+ $ bundle install
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ You just need to invoke `SimpleCov::Parallel.activate` before start tracking coverage:
26
+
27
+ ```ruby
28
+ # spec/spec_helper.rb
29
+ require 'simplecov/parallel'
30
+ SimpleCov::Parallel.activate
31
+ SimpleCov.start
32
+ ```
33
+
34
+ SimpleCov::Parallel automatically detects the best parallelism support for the current environment.
35
+
36
+ You can use any formatter transparently
37
+ since SimpleCov::Parallel merges the results into `SimpleCov.result`,
38
+ which is a basic API of SimpleCov.
39
+
40
+ ## CircleCI
41
+
42
+ When using SimpleCov::Parallel on CircleCI:
43
+
44
+ * [Add `parallel: true`](https://circleci.com/docs/parallel-manual-setup/)
45
+ to the test command (e.g. `rspec`) in your `circle.yml`.
46
+ * [Set up parallelism](https://circleci.com/docs/setting-up-parallelism/)
47
+ for your project from the CircleCI web console.
48
+
49
+ ```yaml
50
+ # circle.yml
51
+ test:
52
+ override:
53
+ - bundle exec rspec:
54
+ parallel: true
55
+ files:
56
+ - spec/**/*_spec.rb
57
+ ```
58
+
59
+ The formatter will be executed only on the first node (`CIRCLE_NODE_INDEX` is `0`).
60
+
61
+ ## License
62
+
63
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new do |task|
6
+ task.verbose = false
7
+ end
8
+
9
+ RuboCop::RakeTask.new
10
+
11
+ task default: [:spec, :rubocop]
12
+
13
+ task ci: [:spec, :rubocop]
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'simplecov/parallel'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/circle.yml ADDED
@@ -0,0 +1,12 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.3.1
4
+
5
+ dependencies:
6
+ post:
7
+ - bundle install:
8
+ pwd: fixtures
9
+
10
+ test:
11
+ override:
12
+ - bundle exec rake ci
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/examples.txt
9
+ /spec/reports/
10
+ /tmp/
data/fixtures/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/fixtures/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rspec', '~> 3.5'
4
+ # simplecov 0.12.0 has a bug in result merger and the bugfix is not yet released.
5
+ # https://github.com/colszowka/simplecov/pull/513
6
+ gem 'simplecov', github: 'colszowka/simplecov'
7
+ gem 'simplecov-parallel', path: '..'
@@ -0,0 +1,11 @@
1
+ module A
2
+ module_function
3
+
4
+ def foo
5
+ puts :foo
6
+ end
7
+
8
+ def bar
9
+ puts :bar
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ require 'dependent/a'
2
+
3
+ module B
4
+ module_function
5
+
6
+ def foo
7
+ 2.times do
8
+ A.foo
9
+ end
10
+ end
11
+
12
+ def bar
13
+ 2.times do
14
+ A.bar
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ module C
2
+ module_function
3
+
4
+ def foo
5
+ if true
6
+ puts :foo
7
+ end
8
+ end
9
+
10
+ def bar
11
+ if false
12
+ puts :bar
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module D
2
+ module_function
3
+
4
+ def foo(bool)
5
+ if bool
6
+ puts :foo
7
+ end
8
+ end
9
+
10
+ def bar(bool)
11
+ if !bool
12
+ puts :bar
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ module A
2
+ module_function
3
+
4
+ def foo
5
+ puts :foo
6
+ end
7
+
8
+ def bar
9
+ puts :bar
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module B
2
+ module_function
3
+
4
+ def foo
5
+ 2.times do
6
+ puts :foo
7
+ end
8
+ end
9
+
10
+ def bar
11
+ 2.times do
12
+ puts :bar
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module C
2
+ module_function
3
+
4
+ def foo
5
+ if true
6
+ puts :foo
7
+ end
8
+ end
9
+
10
+ def bar
11
+ if false
12
+ puts :bar
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module D
2
+ module_function
3
+
4
+ def foo(bool)
5
+ if bool
6
+ puts :foo
7
+ end
8
+ end
9
+
10
+ def bar(bool)
11
+ if !bool
12
+ puts :bar
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,2 @@
1
+ require 'dependent/a'
2
+ A.foo
@@ -0,0 +1,2 @@
1
+ require 'dependent/b'
2
+ B.foo
@@ -0,0 +1,2 @@
1
+ require 'dependent/c'
2
+ C.foo
@@ -0,0 +1,2 @@
1
+ require 'dependent/d'
2
+ D.foo(true)
@@ -0,0 +1,2 @@
1
+ require 'independent/a'
2
+ A.foo
@@ -0,0 +1,2 @@
1
+ require 'independent/b'
2
+ B.foo
@@ -0,0 +1,2 @@
1
+ require 'independent/c'
2
+ C.foo
@@ -0,0 +1,2 @@
1
+ require 'independent/d'
2
+ D.foo(true)
@@ -0,0 +1,21 @@
1
+ FileUtils.rmtree('coverage')
2
+
3
+ module SimpleCov
4
+ class DumpFormatter
5
+ def format(result)
6
+ json = JSON.pretty_generate(result.original_result.sort.to_h)
7
+ path = File.join(SimpleCov.coverage_path, 'dump.json')
8
+ File.write(path, json)
9
+ end
10
+ end
11
+ end
12
+
13
+ require 'circleci/parallel'
14
+ CircleCI::Parallel.configuration.mock_mode = true
15
+
16
+ require 'simplecov/parallel'
17
+ SimpleCov::Parallel.activate
18
+ SimpleCov.start do
19
+ formatter SimpleCov::DumpFormatter
20
+ add_filter '/spec/'
21
+ end
@@ -0,0 +1,54 @@
1
+ require 'simplecov'
2
+ require 'simplecov/parallel/adapter/circleci'
3
+
4
+ module SimpleCov
5
+ # Provides parallelism support for SimpleCov.
6
+ module Parallel
7
+ NoAdapterAvailableError = Class.new(StandardError)
8
+
9
+ class << self
10
+ # Activates SimpleCov parallelism support for the current environment.
11
+ # This modifies some SimpleCov configuration options so you should configure SimpleCov before
12
+ # invoking this method.
13
+ # When no adapter is available in the current environment, it does nothing.
14
+ #
15
+ # @example
16
+ # require 'simplecov/parallel'
17
+ # SimpleCov::Parallel.activate
18
+ # SimpleCov.start
19
+ #
20
+ # @see .activate!
21
+ def activate
22
+ activate!
23
+ rescue NoAdapterAvailableError # rubocop:disable Lint/HandleExceptions
24
+ end
25
+
26
+ # Activates SimpleCov parallelism support for the current environment.
27
+ # This modifies some SimpleCov configuration options so you should configure SimpleCov before
28
+ # invoking this method.
29
+ #
30
+ # @raise NoAdapterAvailableError when no adapter is available in the current environment
31
+ #
32
+ # @example
33
+ # require 'simplecov/parallel'
34
+ # SimpleCov::Parallel.activate! if ENV['CIRCLECI']
35
+ # SimpleCov.start
36
+ #
37
+ # @see .activate!
38
+ def activate!
39
+ if available_adapter_classes.empty?
40
+ raise NoAdapterAvailableError,
41
+ 'No SimpleCov::Parallel adapter is available in the current environment.'
42
+ end
43
+
44
+ available_adapter_classes.first.new.activate
45
+ end
46
+
47
+ private
48
+
49
+ def available_adapter_classes
50
+ Adapter::Base.all_adapters.select(&:available?)
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,24 @@
1
+ module SimpleCov
2
+ module Parallel
3
+ module Adapter
4
+ # @api private
5
+ class Base
6
+ def self.inherited(subclass)
7
+ all_adapters << subclass
8
+ end
9
+
10
+ def self.all_adapters
11
+ @all_adapters ||= []
12
+ end
13
+
14
+ def self.available?
15
+ raise NotImplementedError
16
+ end
17
+
18
+ def activate
19
+ raise NotImplementedError
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,100 @@
1
+ require 'simplecov/parallel/adapter/base'
2
+
3
+ module SimpleCov
4
+ module Parallel
5
+ module Adapter
6
+ # @api private
7
+ class CircleCI < Base
8
+ def self.available?
9
+ ENV.key?('CIRCLECI')
10
+ end
11
+
12
+ def activate
13
+ require 'circleci/parallel'
14
+ require 'fileutils'
15
+
16
+ SimpleCov.command_name("#{SimpleCov.command_name} #{current_node.name}")
17
+
18
+ SimpleCov.at_exit do
19
+ puts 'Merging SimpleCov result into the master node...'
20
+ export_slave_node_result
21
+ join_nodes_and_merge_slave_node_results
22
+ merge_and_format_master_node_result
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def export_slave_node_result
29
+ return if current_node.master?
30
+
31
+ # Export result to coverage/.resultset.json
32
+ # https://github.com/colszowka/simplecov/blob/v0.12.0/lib/simplecov.rb#L89
33
+ raise 'SimpleCov.use_merging must be set to true' unless SimpleCov.use_merging
34
+ SimpleCov.result
35
+
36
+ FileUtils.copy(
37
+ SimpleCov::ResultMerger.resultset_path,
38
+ ::CircleCI::Parallel.local_data_dir
39
+ )
40
+ end
41
+
42
+ def join_nodes_and_merge_slave_node_results
43
+ ::CircleCI::Parallel.configuration.after_download do
44
+ merge_slave_node_results
45
+ end
46
+
47
+ ::CircleCI::Parallel.join
48
+ end
49
+
50
+ def merge_and_format_master_node_result
51
+ return unless current_node.master?
52
+
53
+ # Invoking `SimpleCov.result` here merges the master node data into the slave node data.
54
+ # `SimpleCov.result.format!` is the default behavior of at_exit:
55
+ # https://github.com/colszowka/simplecov/blob/v0.12.0/lib/simplecov/configuration.rb#L172
56
+ SimpleCov.result.format!
57
+ end
58
+
59
+ def merge_slave_node_results
60
+ Dir.glob('node*') do |node_dir|
61
+ results = load_results_from_dir(node_dir)
62
+ merge_and_save_results_to_dir(results, SimpleCov.coverage_path)
63
+ end
64
+ end
65
+
66
+ def load_results_from_dir(dir)
67
+ with_changing_resultset_path(dir) do
68
+ SimpleCov::ResultMerger.results
69
+ end
70
+ end
71
+
72
+ def merge_and_save_results_to_dir(results, dir)
73
+ with_changing_resultset_path(dir) do
74
+ results.each { |result| SimpleCov::ResultMerger.store_result(result) }
75
+ end
76
+ end
77
+
78
+ def with_changing_resultset_path(dir)
79
+ # Actually we don't want to do this hack but changing resultset_path by modifying
80
+ # SimpleCov.root and SimpleCov.coverage_dir does not work well because .root is used in
81
+ # the root filter, which is invoked from SimpleCov::Result#initialize.
82
+ # https://github.com/colszowka/simplecov/blob/v0.12.0/lib/simplecov/defaults.rb#L9
83
+ unbound_method = SimpleCov::ResultMerger.method(:resultset_path).unbind
84
+
85
+ SimpleCov::ResultMerger.define_singleton_method(:resultset_path) do
86
+ File.join(dir, '.resultset.json')
87
+ end
88
+
89
+ yield
90
+ ensure
91
+ unbound_method.bind(SimpleCov::ResultMerger)
92
+ end
93
+
94
+ def current_node
95
+ ::CircleCI::Parallel.current_node
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,13 @@
1
+ module SimpleCov
2
+ module Parallel
3
+ module Version
4
+ MAJOR = 0
5
+ MINOR = 1
6
+ PATCH = 0
7
+
8
+ def self.to_s
9
+ [MAJOR, MINOR, PATCH].join('.')
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'simplecov/parallel/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'simplecov-parallel'
8
+ spec.version = SimpleCov::Parallel::Version.to_s
9
+ spec.authors = ['Yuji Nakayama']
10
+ spec.email = ['nkymyj@gmail.com']
11
+
12
+ spec.summary = 'SimpleCov extension for parallelism support'
13
+ spec.description = spec.summary
14
+ spec.homepage = 'https://github.com/increments/simplecov-parallel'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
18
+ spec.bindir = 'exe'
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_runtime_dependency 'circleci-parallel', '~> 0.4'
23
+ spec.add_runtime_dependency 'simplecov', '~> 0.12'
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.12'
26
+ end
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simplecov-parallel
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yuji Nakayama
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-08-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: circleci-parallel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: simplecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.12'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.12'
55
+ description: SimpleCov extension for parallelism support
56
+ email:
57
+ - nkymyj@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - ".rubocop.yml"
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - bin/console
70
+ - bin/setup
71
+ - circle.yml
72
+ - fixtures/.gitignore
73
+ - fixtures/.rspec
74
+ - fixtures/Gemfile
75
+ - fixtures/lib/dependent/a.rb
76
+ - fixtures/lib/dependent/b.rb
77
+ - fixtures/lib/dependent/c.rb
78
+ - fixtures/lib/dependent/d.rb
79
+ - fixtures/lib/independent/a.rb
80
+ - fixtures/lib/independent/b.rb
81
+ - fixtures/lib/independent/c.rb
82
+ - fixtures/lib/independent/d.rb
83
+ - fixtures/spec/dependent/a_spec.rb
84
+ - fixtures/spec/dependent/b_spec.rb
85
+ - fixtures/spec/dependent/c_spec.rb
86
+ - fixtures/spec/dependent/d_spec.rb
87
+ - fixtures/spec/independent/a_spec.rb
88
+ - fixtures/spec/independent/b_spec.rb
89
+ - fixtures/spec/independent/c_spec.rb
90
+ - fixtures/spec/independent/d_spec.rb
91
+ - fixtures/spec/spec_helper.rb
92
+ - lib/simplecov/parallel.rb
93
+ - lib/simplecov/parallel/adapter/base.rb
94
+ - lib/simplecov/parallel/adapter/circleci.rb
95
+ - lib/simplecov/parallel/version.rb
96
+ - simplecov-parallel.gemspec
97
+ homepage: https://github.com/increments/simplecov-parallel
98
+ licenses:
99
+ - MIT
100
+ metadata: {}
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubyforge_project:
117
+ rubygems_version: 2.6.6
118
+ signing_key:
119
+ specification_version: 4
120
+ summary: SimpleCov extension for parallelism support
121
+ test_files: []