simplecov 0.22.0 → 1.0.0.rc1

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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -1
  3. data/LICENSE +1 -1
  4. data/README.md +1009 -511
  5. data/doc/alternate-formatters.md +0 -5
  6. data/doc/commercial-services.md +5 -5
  7. data/exe/simplecov +11 -0
  8. data/lib/minitest/simplecov_plugin.rb +13 -5
  9. data/lib/simplecov/autostart.rb +11 -0
  10. data/lib/simplecov/cli/clean.rb +47 -0
  11. data/lib/simplecov/cli/coverage.rb +91 -0
  12. data/lib/simplecov/cli/diff.rb +151 -0
  13. data/lib/simplecov/cli/dotfile.rb +100 -0
  14. data/lib/simplecov/cli/merge.rb +116 -0
  15. data/lib/simplecov/cli/open.rb +50 -0
  16. data/lib/simplecov/cli/report.rb +84 -0
  17. data/lib/simplecov/cli/run.rb +36 -0
  18. data/lib/simplecov/cli/serve.rb +139 -0
  19. data/lib/simplecov/cli/uncovered.rb +107 -0
  20. data/lib/simplecov/cli.rb +150 -0
  21. data/lib/simplecov/color.rb +74 -0
  22. data/lib/simplecov/combine/branches_combiner.rb +3 -2
  23. data/lib/simplecov/combine/files_combiner.rb +7 -1
  24. data/lib/simplecov/combine/lines_combiner.rb +19 -17
  25. data/lib/simplecov/combine/methods_combiner.rb +26 -0
  26. data/lib/simplecov/combine/results_combiner.rb +5 -4
  27. data/lib/simplecov/command_guesser.rb +46 -32
  28. data/lib/simplecov/configuration/coverage.rb +171 -0
  29. data/lib/simplecov/configuration/coverage_criteria.rb +156 -0
  30. data/lib/simplecov/configuration/filters.rb +195 -0
  31. data/lib/simplecov/configuration/formatting.rb +119 -0
  32. data/lib/simplecov/configuration/ignored_entries.rb +63 -0
  33. data/lib/simplecov/configuration/merging.rb +74 -0
  34. data/lib/simplecov/configuration/thresholds.rb +174 -0
  35. data/lib/simplecov/configuration.rb +79 -405
  36. data/lib/simplecov/coverage_statistics.rb +12 -9
  37. data/lib/simplecov/coverage_violations.rb +148 -0
  38. data/lib/simplecov/defaults.rb +27 -20
  39. data/lib/simplecov/directive.rb +162 -0
  40. data/lib/simplecov/exit_codes/exit_code_handling.rb +8 -2
  41. data/lib/simplecov/exit_codes/maximum_coverage_drop_check.rb +19 -57
  42. data/lib/simplecov/exit_codes/maximum_overall_coverage_check.rb +45 -0
  43. data/lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb +17 -27
  44. data/lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb +41 -0
  45. data/lib/simplecov/exit_codes/minimum_overall_coverage_check.rb +38 -21
  46. data/lib/simplecov/exit_codes.rb +3 -0
  47. data/lib/simplecov/exit_handling.rb +158 -0
  48. data/lib/simplecov/file_list.rb +61 -17
  49. data/lib/simplecov/filter.rb +69 -24
  50. data/lib/simplecov/formatter/base.rb +101 -0
  51. data/lib/simplecov/formatter/html_formatter/public/application.css +1 -0
  52. data/lib/simplecov/formatter/html_formatter/public/application.js +18 -0
  53. data/lib/simplecov/formatter/html_formatter/public/favicon_green.png +0 -0
  54. data/lib/simplecov/formatter/html_formatter/public/favicon_red.png +0 -0
  55. data/lib/simplecov/formatter/html_formatter/public/favicon_yellow.png +0 -0
  56. data/lib/simplecov/formatter/html_formatter/public/index.html +56 -0
  57. data/lib/simplecov/formatter/html_formatter.rb +79 -0
  58. data/lib/simplecov/formatter/json_formatter/errors_formatter.rb +84 -0
  59. data/lib/simplecov/formatter/json_formatter/result_hash_formatter.rb +127 -0
  60. data/lib/simplecov/formatter/json_formatter/source_file_formatter.rb +99 -0
  61. data/lib/simplecov/formatter/json_formatter.rb +77 -0
  62. data/lib/simplecov/formatter/multi_formatter.rb +4 -5
  63. data/lib/simplecov/formatter/simple_formatter.rb +9 -11
  64. data/lib/simplecov/formatter.rb +4 -0
  65. data/lib/simplecov/last_run.rb +10 -3
  66. data/lib/simplecov/lines_classifier.rb +26 -13
  67. data/lib/simplecov/load_global_config.rb +9 -4
  68. data/lib/simplecov/parallel_adapters/base.rb +51 -0
  69. data/lib/simplecov/parallel_adapters/generic.rb +42 -0
  70. data/lib/simplecov/parallel_adapters/parallel_tests.rb +77 -0
  71. data/lib/simplecov/parallel_adapters.rb +83 -0
  72. data/lib/simplecov/parallel_coordination.rb +95 -0
  73. data/lib/simplecov/process.rb +20 -14
  74. data/lib/simplecov/profiles/bundler_filter.rb +1 -1
  75. data/lib/simplecov/profiles/hidden_filter.rb +1 -1
  76. data/lib/simplecov/profiles/rails.rb +24 -10
  77. data/lib/simplecov/profiles/root_filter.rb +6 -5
  78. data/lib/simplecov/profiles/strict.rb +32 -0
  79. data/lib/simplecov/profiles/test_frameworks.rb +1 -4
  80. data/lib/simplecov/profiles.rb +32 -3
  81. data/lib/simplecov/result/missing_source_files_reporter.rb +49 -0
  82. data/lib/simplecov/result/source_file_builder.rb +51 -0
  83. data/lib/simplecov/result.rb +97 -19
  84. data/lib/simplecov/result_adapter.rb +68 -6
  85. data/lib/simplecov/result_merger/legacy_format_adapter.rb +28 -0
  86. data/lib/simplecov/result_merger/resultset_file.rb +38 -0
  87. data/lib/simplecov/result_merger/resultset_store.rb +50 -0
  88. data/lib/simplecov/result_merger.rb +46 -90
  89. data/lib/simplecov/result_processing.rb +162 -0
  90. data/lib/simplecov/simulate_coverage.rb +54 -8
  91. data/lib/simplecov/source_file/branch.rb +1 -3
  92. data/lib/simplecov/source_file/branch_builder.rb +114 -0
  93. data/lib/simplecov/source_file/builder_context.rb +28 -0
  94. data/lib/simplecov/source_file/line.rb +7 -2
  95. data/lib/simplecov/source_file/line_builder.rb +43 -0
  96. data/lib/simplecov/source_file/method.rb +52 -0
  97. data/lib/simplecov/source_file/method_builder.rb +58 -0
  98. data/lib/simplecov/source_file/ruby_data_parser.rb +88 -0
  99. data/lib/simplecov/source_file/skip_chunks.rb +77 -0
  100. data/lib/simplecov/source_file/source_loader.rb +63 -0
  101. data/lib/simplecov/source_file/statistics.rb +57 -0
  102. data/lib/simplecov/source_file.rb +66 -232
  103. data/lib/simplecov/static_coverage_extractor/visitor.rb +193 -0
  104. data/lib/simplecov/static_coverage_extractor.rb +111 -0
  105. data/lib/simplecov/useless_results_remover.rb +16 -7
  106. data/lib/simplecov/version.rb +1 -1
  107. data/lib/simplecov-html.rb +4 -0
  108. data/lib/simplecov.rb +131 -377
  109. data/lib/simplecov_json_formatter.rb +4 -0
  110. data/schemas/coverage-v1.0.schema.json +300 -0
  111. data/schemas/coverage.schema.json +300 -0
  112. metadata +88 -56
  113. data/lib/simplecov/default_formatter.rb +0 -20
metadata CHANGED
@@ -1,64 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplecov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 1.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
+ - Erik Berlin
8
+ - Benjamin Fleischer
9
+ - Akira Matsuda
7
10
  - Christoph Olszowka
8
11
  - Tobias Pfeiffer
9
- autorequire:
10
- bindir: bin
12
+ - David Rodríguez
13
+ - Xavier Shay
14
+ bindir: exe
11
15
  cert_chain: []
12
- date: 2022-12-23 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: docile
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '1.1'
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "~>"
26
- - !ruby/object:Gem::Version
27
- version: '1.1'
28
- - !ruby/object:Gem::Dependency
29
- name: simplecov-html
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - "~>"
33
- - !ruby/object:Gem::Version
34
- version: '0.11'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '0.11'
42
- - !ruby/object:Gem::Dependency
43
- name: simplecov_json_formatter
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '0.1'
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '0.1'
16
+ date: 1980-01-02 00:00:00.000000000 Z
17
+ dependencies: []
56
18
  description: Code coverage for Ruby with a powerful configuration library and automatic
57
19
  merging of coverage across test suites
58
20
  email:
59
- - christoph at olszowka de
21
+ - sferik@gmail.com
22
+ - github@benjaminfleischer.com
23
+ - ronnie@dio.jp
24
+ - christoph@olszowka.de
60
25
  - pragtob@gmail.com
61
- executables: []
26
+ - deivid.rodriguez@gmail.com
27
+ - xavier@rhnh.net
28
+ executables:
29
+ - simplecov
62
30
  extensions: []
63
31
  extra_rdoc_files: []
64
32
  files:
@@ -68,58 +36,123 @@ files:
68
36
  - doc/alternate-formatters.md
69
37
  - doc/commercial-services.md
70
38
  - doc/editor-integration.md
39
+ - exe/simplecov
71
40
  - lib/minitest/simplecov_plugin.rb
41
+ - lib/simplecov-html.rb
72
42
  - lib/simplecov.rb
43
+ - lib/simplecov/autostart.rb
44
+ - lib/simplecov/cli.rb
45
+ - lib/simplecov/cli/clean.rb
46
+ - lib/simplecov/cli/coverage.rb
47
+ - lib/simplecov/cli/diff.rb
48
+ - lib/simplecov/cli/dotfile.rb
49
+ - lib/simplecov/cli/merge.rb
50
+ - lib/simplecov/cli/open.rb
51
+ - lib/simplecov/cli/report.rb
52
+ - lib/simplecov/cli/run.rb
53
+ - lib/simplecov/cli/serve.rb
54
+ - lib/simplecov/cli/uncovered.rb
55
+ - lib/simplecov/color.rb
73
56
  - lib/simplecov/combine.rb
74
57
  - lib/simplecov/combine/branches_combiner.rb
75
58
  - lib/simplecov/combine/files_combiner.rb
76
59
  - lib/simplecov/combine/lines_combiner.rb
60
+ - lib/simplecov/combine/methods_combiner.rb
77
61
  - lib/simplecov/combine/results_combiner.rb
78
62
  - lib/simplecov/command_guesser.rb
79
63
  - lib/simplecov/configuration.rb
64
+ - lib/simplecov/configuration/coverage.rb
65
+ - lib/simplecov/configuration/coverage_criteria.rb
66
+ - lib/simplecov/configuration/filters.rb
67
+ - lib/simplecov/configuration/formatting.rb
68
+ - lib/simplecov/configuration/ignored_entries.rb
69
+ - lib/simplecov/configuration/merging.rb
70
+ - lib/simplecov/configuration/thresholds.rb
80
71
  - lib/simplecov/coverage_statistics.rb
81
- - lib/simplecov/default_formatter.rb
72
+ - lib/simplecov/coverage_violations.rb
82
73
  - lib/simplecov/defaults.rb
74
+ - lib/simplecov/directive.rb
83
75
  - lib/simplecov/exit_codes.rb
84
76
  - lib/simplecov/exit_codes/exit_code_handling.rb
85
77
  - lib/simplecov/exit_codes/maximum_coverage_drop_check.rb
78
+ - lib/simplecov/exit_codes/maximum_overall_coverage_check.rb
86
79
  - lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb
80
+ - lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb
87
81
  - lib/simplecov/exit_codes/minimum_overall_coverage_check.rb
82
+ - lib/simplecov/exit_handling.rb
88
83
  - lib/simplecov/file_list.rb
89
84
  - lib/simplecov/filter.rb
90
85
  - lib/simplecov/formatter.rb
86
+ - lib/simplecov/formatter/base.rb
87
+ - lib/simplecov/formatter/html_formatter.rb
88
+ - lib/simplecov/formatter/html_formatter/public/application.css
89
+ - lib/simplecov/formatter/html_formatter/public/application.js
90
+ - lib/simplecov/formatter/html_formatter/public/favicon_green.png
91
+ - lib/simplecov/formatter/html_formatter/public/favicon_red.png
92
+ - lib/simplecov/formatter/html_formatter/public/favicon_yellow.png
93
+ - lib/simplecov/formatter/html_formatter/public/index.html
94
+ - lib/simplecov/formatter/json_formatter.rb
95
+ - lib/simplecov/formatter/json_formatter/errors_formatter.rb
96
+ - lib/simplecov/formatter/json_formatter/result_hash_formatter.rb
97
+ - lib/simplecov/formatter/json_formatter/source_file_formatter.rb
91
98
  - lib/simplecov/formatter/multi_formatter.rb
92
99
  - lib/simplecov/formatter/simple_formatter.rb
93
100
  - lib/simplecov/last_run.rb
94
101
  - lib/simplecov/lines_classifier.rb
95
102
  - lib/simplecov/load_global_config.rb
96
103
  - lib/simplecov/no_defaults.rb
104
+ - lib/simplecov/parallel_adapters.rb
105
+ - lib/simplecov/parallel_adapters/base.rb
106
+ - lib/simplecov/parallel_adapters/generic.rb
107
+ - lib/simplecov/parallel_adapters/parallel_tests.rb
108
+ - lib/simplecov/parallel_coordination.rb
97
109
  - lib/simplecov/process.rb
98
110
  - lib/simplecov/profiles.rb
99
111
  - lib/simplecov/profiles/bundler_filter.rb
100
112
  - lib/simplecov/profiles/hidden_filter.rb
101
113
  - lib/simplecov/profiles/rails.rb
102
114
  - lib/simplecov/profiles/root_filter.rb
115
+ - lib/simplecov/profiles/strict.rb
103
116
  - lib/simplecov/profiles/test_frameworks.rb
104
117
  - lib/simplecov/result.rb
118
+ - lib/simplecov/result/missing_source_files_reporter.rb
119
+ - lib/simplecov/result/source_file_builder.rb
105
120
  - lib/simplecov/result_adapter.rb
106
121
  - lib/simplecov/result_merger.rb
122
+ - lib/simplecov/result_merger/legacy_format_adapter.rb
123
+ - lib/simplecov/result_merger/resultset_file.rb
124
+ - lib/simplecov/result_merger/resultset_store.rb
125
+ - lib/simplecov/result_processing.rb
107
126
  - lib/simplecov/simulate_coverage.rb
108
127
  - lib/simplecov/source_file.rb
109
128
  - lib/simplecov/source_file/branch.rb
129
+ - lib/simplecov/source_file/branch_builder.rb
130
+ - lib/simplecov/source_file/builder_context.rb
110
131
  - lib/simplecov/source_file/line.rb
132
+ - lib/simplecov/source_file/line_builder.rb
133
+ - lib/simplecov/source_file/method.rb
134
+ - lib/simplecov/source_file/method_builder.rb
135
+ - lib/simplecov/source_file/ruby_data_parser.rb
136
+ - lib/simplecov/source_file/skip_chunks.rb
137
+ - lib/simplecov/source_file/source_loader.rb
138
+ - lib/simplecov/source_file/statistics.rb
139
+ - lib/simplecov/static_coverage_extractor.rb
140
+ - lib/simplecov/static_coverage_extractor/visitor.rb
111
141
  - lib/simplecov/useless_results_remover.rb
112
142
  - lib/simplecov/version.rb
143
+ - lib/simplecov_json_formatter.rb
144
+ - schemas/coverage-v1.0.schema.json
145
+ - schemas/coverage.schema.json
113
146
  homepage: https://github.com/simplecov-ruby/simplecov
114
147
  licenses:
115
148
  - MIT
116
149
  metadata:
117
150
  bug_tracker_uri: https://github.com/simplecov-ruby/simplecov/issues
118
151
  changelog_uri: https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md
119
- documentation_uri: https://www.rubydoc.info/gems/simplecov/0.22.0
152
+ documentation_uri: https://www.rubydoc.info/gems/simplecov/1.0.0.rc1
120
153
  mailing_list_uri: https://groups.google.com/forum/#!forum/simplecov
121
- source_code_uri: https://github.com/simplecov-ruby/simplecov/tree/v0.22.0
122
- post_install_message:
154
+ source_code_uri: https://github.com/simplecov-ruby/simplecov/tree/v1.0.0.rc1
155
+ rubygems_mfa_required: 'true'
123
156
  rdoc_options: []
124
157
  require_paths:
125
158
  - lib
@@ -127,15 +160,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
160
  requirements:
128
161
  - - ">="
129
162
  - !ruby/object:Gem::Version
130
- version: 2.5.0
163
+ version: '3.1'
131
164
  required_rubygems_version: !ruby/object:Gem::Requirement
132
165
  requirements:
133
166
  - - ">="
134
167
  - !ruby/object:Gem::Version
135
168
  version: '0'
136
169
  requirements: []
137
- rubygems_version: 3.3.7
138
- signing_key:
170
+ rubygems_version: 4.0.12
139
171
  specification_version: 4
140
172
  summary: Code coverage for Ruby
141
173
  test_files: []
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "simplecov-html"
4
- module SimpleCov
5
- module Formatter
6
- class << self
7
- def from_env(env)
8
- formatters = [SimpleCov::Formatter::HTMLFormatter]
9
-
10
- # When running under a CI that uses CodeClimate, JSON output is expected
11
- if env.fetch("CC_TEST_REPORTER_ID", nil)
12
- require "simplecov_json_formatter"
13
- formatters.push(SimpleCov::Formatter::JSONFormatter)
14
- end
15
-
16
- formatters
17
- end
18
- end
19
- end
20
- end